From 1e8eb760131353a5bee69cc3d9a92a91a658e505 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 21 Mar 2023 11:27:20 +0800 Subject: [PATCH] test --- internal/rpc/msg/send_msg.go | 7 +-- internal/rpc/msg/send_pull.go | 81 --------------------------------- internal/rpc/msg/server.go | 84 +++++++++++++++++++++++++++++++++++ 3 files changed, 88 insertions(+), 84 deletions(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 4b492f022..2d7028834 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -270,9 +270,10 @@ func (m *msgServer) modifyMessageByUserMessageReceiveOpt(ctx context.Context, us } conversationID := utils.GetConversationIDBySessionType(sourceID, sessionType) singleOpt, err := m.Conversation.GetSingleConversationRecvMsgOpt(ctx, userID, conversationID) - if err != nil { - return false, err - } + //if err != nil { + // return false, err + //} + return true, nil switch singleOpt { case constant.ReceiveMessage: return true, nil diff --git a/internal/rpc/msg/send_pull.go b/internal/rpc/msg/send_pull.go index 5aedbe2ed..f1987bdf7 100644 --- a/internal/rpc/msg/send_pull.go +++ b/internal/rpc/msg/send_pull.go @@ -4,13 +4,11 @@ import ( "context" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/constant" promePkg "github.com/OpenIMSDK/Open-IM-Server/pkg/common/prome" - "github.com/OpenIMSDK/Open-IM-Server/pkg/common/tokenverify" "github.com/OpenIMSDK/Open-IM-Server/pkg/errs" pbConversation "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/conversation" "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/msg" "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/sdkws" "github.com/OpenIMSDK/Open-IM-Server/pkg/utils" - "github.com/go-redis/redis/v8" "github.com/golang/protobuf/proto" "sync" ) @@ -233,82 +231,3 @@ func (m *msgServer) sendMsgGroupChat(ctx context.Context, req *msg.SendMsgReq) ( resp.ClientMsgID = msgToMQSingle.MsgData.ClientMsgID return resp, nil } - -func (m *msgServer) SendMsg(ctx context.Context, req *msg.SendMsgReq) (resp *msg.SendMsgResp, error error) { - resp = &msg.SendMsgResp{} - flag := isMessageHasReadEnabled(req.MsgData) - if !flag { - return nil, errs.ErrMessageHasReadDisable.Wrap() - } - m.encapsulateMsgData(req.MsgData) - if err := CallbackMsgModify(ctx, req); err != nil && err != errs.ErrCallbackContinue { - return nil, err - } - switch req.MsgData.SessionType { - case constant.SingleChatType: - return m.sendMsgSingleChat(ctx, req) - case constant.GroupChatType: - return m.sendMsgGroupChat(ctx, req) - case constant.NotificationChatType: - return m.sendMsgNotification(ctx, req) - case constant.SuperGroupChatType: - return m.sendMsgSuperGroupChat(ctx, req) - default: - return nil, errs.ErrArgs.Wrap("unknown sessionType") - } -} - -func (m *msgServer) GetMaxAndMinSeq(ctx context.Context, req *sdkws.GetMaxAndMinSeqReq) (*sdkws.GetMaxAndMinSeqResp, error) { - if err := tokenverify.CheckAccessV3(ctx, req.UserID); err != nil { - return nil, err - } - resp := new(sdkws.GetMaxAndMinSeqResp) - m2 := make(map[string]*sdkws.MaxAndMinSeq) - maxSeq, err := m.MsgDatabase.GetUserMaxSeq(ctx, req.UserID) - if err != nil && errs.Unwrap(err) != redis.Nil { - return nil, err - } - minSeq, err := m.MsgDatabase.GetUserMinSeq(ctx, req.UserID) - if err != nil && errs.Unwrap(err) != redis.Nil { - return nil, err - } - resp.MaxSeq = maxSeq - resp.MinSeq = minSeq - if len(req.GroupIDs) > 0 { - for _, groupID := range req.GroupIDs { - maxSeq, err := m.MsgDatabase.GetGroupMaxSeq(ctx, groupID) - if err != nil && errs.Unwrap(err) != redis.Nil { - return nil, err - } - minSeq, err := m.MsgDatabase.GetGroupMinSeq(ctx, groupID) - if err != nil && errs.Unwrap(err) != redis.Nil { - return nil, err - } - m2[groupID] = &sdkws.MaxAndMinSeq{ - MaxSeq: maxSeq, - MinSeq: minSeq, - } - } - } - resp.GroupMaxAndMinSeq = m2 - return resp, nil -} - -func (m *msgServer) PullMessageBySeqs(ctx context.Context, req *sdkws.PullMessageBySeqsReq) (*sdkws.PullMessageBySeqsResp, error) { - resp := &sdkws.PullMessageBySeqsResp{GroupMsgDataList: make(map[string]*sdkws.MsgDataList)} - msgs, err := m.MsgDatabase.GetMsgBySeqs(ctx, req.UserID, req.Seqs) - if err != nil { - return nil, err - } - resp.List = msgs - for groupID, list := range req.GroupSeqs { - msgs, err := m.MsgDatabase.GetSuperGroupMsgBySeqs(ctx, groupID, list.Seqs) - if err != nil { - return nil, err - } - resp.GroupMsgDataList[groupID] = &sdkws.MsgDataList{ - MsgDataList: msgs, - } - } - return resp, nil -} diff --git a/internal/rpc/msg/server.go b/internal/rpc/msg/server.go index 86b65a15d..16b2b901f 100644 --- a/internal/rpc/msg/server.go +++ b/internal/rpc/msg/server.go @@ -1,14 +1,20 @@ package msg import ( + "context" + "github.com/OpenIMSDK/Open-IM-Server/pkg/common/constant" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/cache" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/controller" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/localcache" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/unrelation" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/prome" + "github.com/OpenIMSDK/Open-IM-Server/pkg/common/tokenverify" "github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry" + "github.com/OpenIMSDK/Open-IM-Server/pkg/errs" "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/msg" + "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/sdkws" "github.com/OpenIMSDK/Open-IM-Server/pkg/rpcclient/check" + "github.com/go-redis/redis/v8" "google.golang.org/grpc" ) @@ -74,3 +80,81 @@ func (m *msgServer) initPrometheus() { prome.NewWorkSuperGroupChatMsgProcessSuccessCounter() prome.NewWorkSuperGroupChatMsgProcessFailedCounter() } +func (m *msgServer) SendMsg(ctx context.Context, req *msg.SendMsgReq) (resp *msg.SendMsgResp, error error) { + resp = &msg.SendMsgResp{} + flag := isMessageHasReadEnabled(req.MsgData) + if !flag { + return nil, errs.ErrMessageHasReadDisable.Wrap() + } + m.encapsulateMsgData(req.MsgData) + if err := CallbackMsgModify(ctx, req); err != nil && err != errs.ErrCallbackContinue { + return nil, err + } + switch req.MsgData.SessionType { + case constant.SingleChatType: + return m.sendMsgSingleChat(ctx, req) + case constant.GroupChatType: + return m.sendMsgGroupChat(ctx, req) + case constant.NotificationChatType: + return m.sendMsgNotification(ctx, req) + case constant.SuperGroupChatType: + return m.sendMsgSuperGroupChat(ctx, req) + default: + return nil, errs.ErrArgs.Wrap("unknown sessionType") + } +} + +func (m *msgServer) GetMaxAndMinSeq(ctx context.Context, req *sdkws.GetMaxAndMinSeqReq) (*sdkws.GetMaxAndMinSeqResp, error) { + if err := tokenverify.CheckAccessV3(ctx, req.UserID); err != nil { + return nil, err + } + resp := new(sdkws.GetMaxAndMinSeqResp) + m2 := make(map[string]*sdkws.MaxAndMinSeq) + maxSeq, err := m.MsgDatabase.GetUserMaxSeq(ctx, req.UserID) + if err != nil && errs.Unwrap(err) != redis.Nil { + return nil, err + } + minSeq, err := m.MsgDatabase.GetUserMinSeq(ctx, req.UserID) + if err != nil && errs.Unwrap(err) != redis.Nil { + return nil, err + } + resp.MaxSeq = maxSeq + resp.MinSeq = minSeq + if len(req.GroupIDs) > 0 { + for _, groupID := range req.GroupIDs { + maxSeq, err := m.MsgDatabase.GetGroupMaxSeq(ctx, groupID) + if err != nil && errs.Unwrap(err) != redis.Nil { + return nil, err + } + minSeq, err := m.MsgDatabase.GetGroupMinSeq(ctx, groupID) + if err != nil && errs.Unwrap(err) != redis.Nil { + return nil, err + } + m2[groupID] = &sdkws.MaxAndMinSeq{ + MaxSeq: maxSeq, + MinSeq: minSeq, + } + } + } + resp.GroupMaxAndMinSeq = m2 + return resp, nil +} + +func (m *msgServer) PullMessageBySeqs(ctx context.Context, req *sdkws.PullMessageBySeqsReq) (*sdkws.PullMessageBySeqsResp, error) { + resp := &sdkws.PullMessageBySeqsResp{GroupMsgDataList: make(map[string]*sdkws.MsgDataList)} + msgs, err := m.MsgDatabase.GetMsgBySeqs(ctx, req.UserID, req.Seqs) + if err != nil { + return nil, err + } + resp.List = msgs + for groupID, list := range req.GroupSeqs { + msgs, err := m.MsgDatabase.GetSuperGroupMsgBySeqs(ctx, groupID, list.Seqs) + if err != nil { + return nil, err + } + resp.GroupMsgDataList[groupID] = &sdkws.MsgDataList{ + MsgDataList: msgs, + } + } + return resp, nil +}