Files
open-im-server/internal/rpc/friend/callback.go
T

60 lines
1.9 KiB
Go
Raw Normal View History

2022-02-28 17:57:03 +08:00
package friend
2022-10-19 21:06:48 +08:00
import (
2023-01-13 18:00:18 +08:00
cbApi "Open_IM/pkg/callback_struct"
2022-10-19 21:06:48 +08:00
"Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant"
"Open_IM/pkg/common/http"
"Open_IM/pkg/common/log"
2023-02-01 11:15:39 +08:00
"Open_IM/pkg/common/tracelog"
2022-10-19 21:06:48 +08:00
pbFriend "Open_IM/pkg/proto/friend"
2023-02-01 11:15:39 +08:00
"context"
2022-10-19 21:09:05 +08:00
//"Open_IM/pkg/proto/msg"
2022-10-19 21:06:48 +08:00
"Open_IM/pkg/utils"
http2 "net/http"
)
2023-02-01 11:15:39 +08:00
func callbackBeforeAddFriendV1(ctx context.Context, req *pbFriend.AddFriendReq) error {
resp := callbackBeforeAddFriend(ctx, req)
2023-01-13 18:20:48 +08:00
if resp.ErrCode != 0 {
return (&constant.ErrInfo{
ErrCode: resp.ErrCode,
ErrMsg: resp.ErrMsg,
}).Wrap()
}
return nil
}
2023-02-01 11:15:39 +08:00
func callbackBeforeAddFriend(ctx context.Context, req *pbFriend.AddFriendReq) cbApi.CommonCallbackResp {
callbackResp := cbApi.CommonCallbackResp{OperationID: tracelog.GetOperationID(ctx)}
2022-10-19 21:06:48 +08:00
if !config.Config.Callback.CallbackBeforeAddFriend.Enable {
return callbackResp
}
2023-02-01 11:15:39 +08:00
2022-10-19 21:06:48 +08:00
commonCallbackReq := &cbApi.CallbackBeforeAddFriendReq{
CallbackCommand: constant.CallbackBeforeAddFriendCommand,
2023-02-01 11:15:39 +08:00
FromUserID: req.FromUserID,
ToUserID: req.ToUserID,
2022-10-19 21:06:48 +08:00
ReqMsg: req.ReqMsg,
2023-02-01 11:15:39 +08:00
OperationID: tracelog.GetOperationID(ctx),
2022-10-19 21:06:48 +08:00
}
resp := &cbApi.CallbackBeforeAddFriendResp{
2022-11-08 17:10:27 +08:00
CommonCallbackResp: &callbackResp,
2022-10-19 21:06:48 +08:00
}
//utils.CopyStructFields(req, msg.MsgData)
2023-02-01 11:15:39 +08:00
defer log.NewDebug(tracelog.GetOperationID(ctx), utils.GetSelfFuncName(), commonCallbackReq, *resp)
if err := http.CallBackPostReturn(config.Config.Callback.CallbackUrl, constant.CallbackBeforeAddFriendCommand, commonCallbackReq, resp, config.Config.Callback.CallbackBeforeAddFriend); err != nil {
2022-10-19 21:06:48 +08:00
callbackResp.ErrCode = http2.StatusInternalServerError
callbackResp.ErrMsg = err.Error()
2023-02-01 11:15:39 +08:00
if !*config.Config.Callback.CallbackBeforeAddFriend.CallbackFailedContinue {
2022-10-19 21:06:48 +08:00
callbackResp.ActionCode = constant.ActionForbidden
return callbackResp
} else {
callbackResp.ActionCode = constant.ActionAllow
return callbackResp
}
}
return callbackResp
}