From d9b8b093dfa7c5defa6f60c47af697ba71abae72 Mon Sep 17 00:00:00 2001 From: AndrewZuo01 Date: Tue, 9 Jan 2024 18:00:56 +0800 Subject: [PATCH] fix callback typing --- internal/push/callback.go | 6 +++--- internal/push/push_to_client.go | 14 ++++---------- internal/rpc/msg/callback.go | 8 ++++---- internal/rpc/msg/send.go | 22 +++++++--------------- 4 files changed, 18 insertions(+), 32 deletions(-) diff --git a/internal/push/callback.go b/internal/push/callback.go index 2085493c5..99a58fb07 100644 --- a/internal/push/callback.go +++ b/internal/push/callback.go @@ -37,7 +37,7 @@ func callbackOfflinePush( msg *sdkws.MsgData, offlinePushUserIDs *[]string, ) error { - if !config.Config.Callback.CallbackOfflinePush.Enable { + if !config.Config.Callback.CallbackOfflinePush.Enable || msg.ContentType == constant.Typing { return nil } req := &callbackstruct.CallbackBeforePushReq{ @@ -73,7 +73,7 @@ func callbackOfflinePush( } func callbackOnlinePush(ctx context.Context, userIDs []string, msg *sdkws.MsgData) error { - if !config.Config.Callback.CallbackOnlinePush.Enable || utils.Contain(msg.SendID, userIDs...) { + if !config.Config.Callback.CallbackOnlinePush.Enable || utils.Contain(msg.SendID, userIDs...) || msg.ContentType == constant.Typing { return nil } req := callbackstruct.CallbackBeforePushReq{ @@ -107,7 +107,7 @@ func callbackBeforeSuperGroupOnlinePush( msg *sdkws.MsgData, pushToUserIDs *[]string, ) error { - if !config.Config.Callback.CallbackBeforeSuperGroupOnlinePush.Enable { + if !config.Config.Callback.CallbackBeforeSuperGroupOnlinePush.Enable || msg.ContentType == constant.Typing { return nil } req := callbackstruct.CallbackBeforeSuperGroupOnlinePushReq{ diff --git a/internal/push/push_to_client.go b/internal/push/push_to_client.go index 21aaad890..7cee7b99d 100644 --- a/internal/push/push_to_client.go +++ b/internal/push/push_to_client.go @@ -101,7 +101,9 @@ func (p *Pusher) DeleteMemberAndSetConversationSeq(ctx context.Context, groupID func (p *Pusher) Push2User(ctx context.Context, userIDs []string, msg *sdkws.MsgData) error { log.ZDebug(ctx, "Get msg from msg_transfer And push msg", "userIDs", userIDs, "msg", msg.String()) - + if err := callbackOnlinePush(ctx, userIDs, msg); err != nil { + return err + } // push wsResults, err := p.GetConnsAndOnlinePush(ctx, msg, userIDs) if err != nil { @@ -116,11 +118,7 @@ func (p *Pusher) Push2User(ctx context.Context, userIDs []string, msg *sdkws.Msg } for _, v := range wsResults { - if msg.SendID == v.UserID || msg.ContentType == constant.Typing { - continue // Skip if sender and receiver are the same or message is typing - } - - if !v.OnlinePush { + if !v.OnlinePush && msg.SendID == v.UserID { if err = callbackOfflinePush(ctx, userIDs, msg, &[]string{}); err != nil { return err } @@ -129,10 +127,6 @@ func (p *Pusher) Push2User(ctx context.Context, userIDs []string, msg *sdkws.Msg if err != nil { return err } - } else { - if err := callbackOnlinePush(ctx, userIDs, msg); err != nil { - return err - } } } diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index 5d192fb87..f98318bba 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -70,7 +70,7 @@ func GetContent(msg *sdkws.MsgData) string { } func callbackBeforeSendSingleMsg(ctx context.Context, msg *pbchat.SendMsgReq) error { - if !config.Config.Callback.CallbackBeforeSendSingleMsg.Enable { + if !config.Config.Callback.CallbackBeforeSendSingleMsg.Enable || msg.MsgData.ContentType == constant.Typing { return nil } req := &cbapi.CallbackBeforeSendSingleMsgReq{ @@ -85,7 +85,7 @@ func callbackBeforeSendSingleMsg(ctx context.Context, msg *pbchat.SendMsgReq) er } func callbackAfterSendSingleMsg(ctx context.Context, msg *pbchat.SendMsgReq) error { - if !config.Config.Callback.CallbackAfterSendSingleMsg.Enable { + if !config.Config.Callback.CallbackAfterSendSingleMsg.Enable || msg.MsgData.ContentType == constant.Typing { return nil } req := &cbapi.CallbackAfterSendSingleMsgReq{ @@ -100,7 +100,7 @@ func callbackAfterSendSingleMsg(ctx context.Context, msg *pbchat.SendMsgReq) err } func callbackBeforeSendGroupMsg(ctx context.Context, msg *pbchat.SendMsgReq) error { - if !config.Config.Callback.CallbackBeforeSendGroupMsg.Enable { + if !config.Config.Callback.CallbackBeforeSendGroupMsg.Enable || msg.MsgData.ContentType == constant.Typing { return nil } req := &cbapi.CallbackBeforeSendGroupMsgReq{ @@ -115,7 +115,7 @@ func callbackBeforeSendGroupMsg(ctx context.Context, msg *pbchat.SendMsgReq) err } func callbackAfterSendGroupMsg(ctx context.Context, msg *pbchat.SendMsgReq) error { - if !config.Config.Callback.CallbackAfterSendGroupMsg.Enable { + if !config.Config.Callback.CallbackAfterSendGroupMsg.Enable || msg.MsgData.ContentType == constant.Typing { return nil } req := &cbapi.CallbackAfterSendGroupMsgReq{ diff --git a/internal/rpc/msg/send.go b/internal/rpc/msg/send.go index 5f774c279..630b74a4a 100644 --- a/internal/rpc/msg/send.go +++ b/internal/rpc/msg/send.go @@ -62,10 +62,8 @@ func (m *msgServer) sendMsgSuperGroupChat( prommetrics.GroupChatMsgProcessFailedCounter.Inc() return nil, err } - if req.MsgData.ContentType != constant.Typing { - if err = callbackBeforeSendGroupMsg(ctx, req); err != nil { - return nil, err - } + if err = callbackBeforeSendGroupMsg(ctx, req); err != nil { + return nil, err } if err := callbackMsgModify(ctx, req); err != nil { @@ -78,10 +76,8 @@ func (m *msgServer) sendMsgSuperGroupChat( if req.MsgData.ContentType == constant.AtText { go m.setConversationAtInfo(ctx, req.MsgData) } - if req.MsgData.ContentType != constant.Typing { - if err = callbackAfterSendGroupMsg(ctx, req); err != nil { - log.ZWarn(ctx, "CallbackAfterSendGroupMsg", err) - } + if err = callbackAfterSendGroupMsg(ctx, req); err != nil { + log.ZWarn(ctx, "CallbackAfterSendGroupMsg", err) } prommetrics.GroupChatMsgProcessSuccessCounter.Inc() resp = &pbmsg.SendMsgResp{} @@ -169,10 +165,8 @@ func (m *msgServer) sendMsgSingleChat(ctx context.Context, req *pbmsg.SendMsgReq prommetrics.SingleChatMsgProcessFailedCounter.Inc() return nil, nil } else { - if req.MsgData.ContentType != constant.Typing { - if err = callbackBeforeSendSingleMsg(ctx, req); err != nil { - return nil, err - } + if err = callbackBeforeSendSingleMsg(ctx, req); err != nil { + return nil, err } if err := callbackMsgModify(ctx, req); err != nil { @@ -182,9 +176,7 @@ func (m *msgServer) sendMsgSingleChat(ctx context.Context, req *pbmsg.SendMsgReq prommetrics.SingleChatMsgProcessFailedCounter.Inc() return nil, err } - if req.MsgData.ContentType != constant.Typing { - err = callbackAfterSendSingleMsg(ctx, req) - } + err = callbackAfterSendSingleMsg(ctx, req) if err != nil { log.ZWarn(ctx, "CallbackAfterSendSingleMsg", err, "req", req) }