Files
open-im-server/internal/push/logic/callback.go
T

47 lines
1.7 KiB
Go
Raw Normal View History

2022-05-26 18:02:00 +08:00
package logic
import (
cbApi "Open_IM/pkg/call_back_struct"
"Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant"
"Open_IM/pkg/common/http"
commonPb "Open_IM/pkg/proto/sdk_ws"
http2 "net/http"
)
2022-05-27 19:33:47 +08:00
func callbackOfflinePush(operationID, userID string, msg *commonPb.MsgData) cbApi.CommonCallbackResp {
2022-05-26 18:02:00 +08:00
callbackResp := cbApi.CommonCallbackResp{OperationID: operationID}
2022-05-27 11:49:38 +08:00
if !config.Config.Callback.CallbackOfflinePush.Enable {
2022-05-26 18:02:00 +08:00
return callbackResp
}
callbackOfflinePushReq := cbApi.CallbackOfflinePushReq{
UserStatusCallbackReq: cbApi.UserStatusCallbackReq{
CallbackCommand: constant.CallbackOfflinePushCommand,
OperationID: operationID,
UserID: userID,
2022-05-27 19:33:47 +08:00
PlatformID: msg.SenderPlatformID,
2022-06-07 17:42:24 +08:00
Platform: constant.PlatformIDToName(int(msg.SenderPlatformID)),
2022-05-26 18:02:00 +08:00
},
2022-05-27 19:33:47 +08:00
OfflinePushInfo: msg.OfflinePushInfo,
SendID: msg.SendID,
GroupID: msg.GroupID,
ContentType: msg.ContentType,
SessionType: msg.SessionType,
AtUserIDList: msg.AtUserIDList,
Content: string(msg.Content),
2022-05-26 18:02:00 +08:00
}
2022-05-27 10:26:44 +08:00
callbackOfflinePushResp := &cbApi.CallbackOfflinePushResp{CommonCallbackResp: &callbackResp}
2022-05-26 18:02:00 +08:00
if err := http.PostReturn(config.Config.Callback.CallbackUrl, callbackOfflinePushReq, callbackOfflinePushResp, config.Config.Callback.CallbackOfflinePush.CallbackTimeOut); err != nil {
callbackResp.ErrCode = http2.StatusInternalServerError
callbackResp.ErrMsg = err.Error()
2022-05-27 11:49:38 +08:00
if !config.Config.Callback.CallbackOfflinePush.CallbackFailedContinue {
callbackResp.ActionCode = constant.ActionForbidden
return callbackResp
} else {
callbackResp.ActionCode = constant.ActionAllow
return callbackResp
}
2022-05-26 18:02:00 +08:00
}
return callbackResp
}