Files
open-im-server/internal/rpc/msg/delete.go
T

70 lines
2.3 KiB
Go
Raw Normal View History

2022-03-16 18:02:26 +08:00
package msg
import (
"context"
2023-04-24 11:06:58 +08:00
2023-05-25 12:18:02 +08:00
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/log"
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/tokenverify"
2023-03-16 10:46:06 +08:00
"github.com/OpenIMSDK/Open-IM-Server/pkg/proto/msg"
2022-03-16 18:02:26 +08:00
)
2023-05-25 12:18:02 +08:00
func (m *msgServer) getMinSeqs(maxSeqs map[string]int64) map[string]int64 {
minSeqs := make(map[string]int64)
for k, v := range maxSeqs {
minSeqs[k] = v + 1
}
return minSeqs
}
2023-05-25 11:04:41 +08:00
func (m *msgServer) ClearConversationsMsg(ctx context.Context, req *msg.ClearConversationsMsgReq) (*msg.ClearConversationsMsgResp, error) {
2023-05-25 12:18:02 +08:00
if err := tokenverify.CheckAccessV3(ctx, req.UserID); err != nil {
return nil, err
}
maxSeqs, err := m.MsgDatabase.GetMaxSeqs(ctx, req.ConversationIDs)
if err != nil {
return nil, err
}
if err := m.MsgDatabase.SetUserConversationsMinSeqs(ctx, req.UserID, m.getMinSeqs(maxSeqs)); err != nil {
return nil, err
}
2023-05-25 11:04:41 +08:00
return &msg.ClearConversationsMsgResp{}, nil
2022-03-16 18:02:26 +08:00
}
2023-02-13 11:24:13 +08:00
2023-05-25 11:09:10 +08:00
func (m *msgServer) UserClearAllMsg(ctx context.Context, req *msg.UserClearAllMsgReq) (*msg.UserClearAllMsgResp, error) {
2023-05-25 12:18:02 +08:00
if err := tokenverify.CheckAccessV3(ctx, req.UserID); err != nil {
return nil, err
}
conversationIDs, err := m.Conversation.GetConversationIDs(ctx, req.UserID)
if err != nil {
return nil, err
}
maxSeqs, err := m.MsgDatabase.GetMaxSeqs(ctx, conversationIDs)
if err != nil {
return nil, err
}
if err := m.MsgDatabase.SetUserConversationsMinSeqs(ctx, req.UserID, m.getMinSeqs(maxSeqs)); err != nil {
return nil, err
}
2023-05-25 11:09:10 +08:00
return &msg.UserClearAllMsgResp{}, nil
2023-01-11 16:23:16 +08:00
}
2023-02-10 22:10:37 +08:00
2023-05-25 11:04:41 +08:00
func (m *msgServer) DeleteMsgs(ctx context.Context, req *msg.DeleteMsgsReq) (*msg.DeleteMsgsResp, error) {
2023-05-25 12:18:02 +08:00
if err := tokenverify.CheckAccessV3(ctx, req.UserID); err != nil {
return nil, err
}
2023-05-25 11:04:41 +08:00
return &msg.DeleteMsgsResp{}, nil
}
func (m *msgServer) DeleteMsgPhysicalBySeq(ctx context.Context, req *msg.DeleteMsgPhysicalBySeqReq) (*msg.DeleteMsgPhysicalBySeqResp, error) {
return &msg.DeleteMsgPhysicalBySeqResp{}, nil
2023-02-10 22:10:37 +08:00
}
2023-05-25 12:18:02 +08:00
func (m *msgServer) DeleteMsgPhysical(ctx context.Context, req *msg.DeleteMsgPhysicalReq) (*msg.DeleteMsgPhysicalResp, error) {
for _, conversationID := range req.ConversationIDs {
if err := m.MsgDatabase.DeleteConversationMsgsAndSetMinSeq(ctx, conversationID, req.RemainTime); err != nil {
log.ZWarn(ctx, "DeleteConversationMsgsAndSetMinSeq error", err, "conversationID", conversationID, "err", err)
}
}
return &msg.DeleteMsgPhysicalResp{}, nil
}