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{