From ffcc6743fd34ea9214de867b8ff69214acbd7a10 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 7 Jun 2023 17:39:41 +0800 Subject: [PATCH] mark as read --- internal/rpc/msg/as_read.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/rpc/msg/as_read.go b/internal/rpc/msg/as_read.go index 4ad43e489..c0b440b7b 100644 --- a/internal/rpc/msg/as_read.go +++ b/internal/rpc/msg/as_read.go @@ -36,6 +36,14 @@ func (m *msgServer) MarkMsgsAsRead(ctx context.Context, req *msg.MarkMsgsAsReadR if len(req.Seqs) < 1 { return nil, errs.ErrArgs.Wrap("seqs must not be empty") } + maxSeq, err := m.MsgDatabase.GetMaxSeq(ctx, req.ConversationID) + if err != nil { + return + } + hasReadSeq := req.Seqs[len(req.Seqs)-1] + if hasReadSeq > maxSeq { + return nil, errs.ErrArgs.Wrap("hasReadSeq must not be bigger than maxSeq") + } conversations, err := m.Conversation.GetConversationsByConversationID(ctx, []string{req.ConversationID}) if err != nil { return @@ -44,7 +52,6 @@ func (m *msgServer) MarkMsgsAsRead(ctx context.Context, req *msg.MarkMsgsAsReadR if err != nil { return } - hasReadSeq := req.Seqs[len(req.Seqs)-1] err = m.MsgDatabase.SetHasReadSeq(ctx, req.UserID, req.ConversationID, hasReadSeq) if err != nil { return