You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
3.6 KiB
90 lines
3.6 KiB
3 years ago
|
package gate
|
||
|
|
||
|
import (
|
||
2 years ago
|
cbApi "Open_IM/pkg/callback_struct"
|
||
3 years ago
|
"Open_IM/pkg/common/config"
|
||
|
"Open_IM/pkg/common/constant"
|
||
|
"Open_IM/pkg/common/http"
|
||
|
http2 "net/http"
|
||
3 years ago
|
"time"
|
||
3 years ago
|
)
|
||
|
|
||
2 years ago
|
func callbackUserOnline(operationID, userID string, platformID int, token string, isAppBackground bool, connID string) cbApi.CommonCallbackResp {
|
||
3 years ago
|
callbackResp := cbApi.CommonCallbackResp{OperationID: operationID}
|
||
|
if !config.Config.Callback.CallbackUserOnline.Enable {
|
||
|
return callbackResp
|
||
|
}
|
||
|
callbackUserOnlineReq := cbApi.CallbackUserOnlineReq{
|
||
|
Token: token,
|
||
|
UserStatusCallbackReq: cbApi.UserStatusCallbackReq{
|
||
2 years ago
|
UserStatusBaseCallback: cbApi.UserStatusBaseCallback{
|
||
|
CallbackCommand: constant.CallbackUserOnlineCommand,
|
||
|
OperationID: operationID,
|
||
|
PlatformID: int32(platformID),
|
||
|
Platform: constant.PlatformIDToName(platformID),
|
||
|
},
|
||
|
UserID: userID,
|
||
3 years ago
|
},
|
||
2 years ago
|
Seq: int(time.Now().UnixNano() / 1e6),
|
||
|
IsAppBackground: isAppBackground,
|
||
|
ConnID: connID,
|
||
3 years ago
|
}
|
||
2 years ago
|
callbackUserOnlineResp := &cbApi.CallbackUserOnlineResp{CommonCallbackResp: &callbackResp}
|
||
2 years ago
|
if err := http.CallBackPostReturn(config.Config.Callback.CallbackUrl, constant.CallbackUserOnlineCommand, callbackUserOnlineReq, callbackUserOnlineResp, config.Config.Callback.CallbackUserOnline.CallbackTimeOut); err != nil {
|
||
3 years ago
|
callbackResp.ErrCode = http2.StatusInternalServerError
|
||
|
callbackResp.ErrMsg = err.Error()
|
||
|
}
|
||
|
return callbackResp
|
||
|
}
|
||
|
|
||
2 years ago
|
func callbackUserOffline(operationID, userID string, platformID int, connID string) cbApi.CommonCallbackResp {
|
||
3 years ago
|
callbackResp := cbApi.CommonCallbackResp{OperationID: operationID}
|
||
|
if !config.Config.Callback.CallbackUserOffline.Enable {
|
||
|
return callbackResp
|
||
|
}
|
||
3 years ago
|
callbackOfflineReq := cbApi.CallbackUserOfflineReq{
|
||
|
UserStatusCallbackReq: cbApi.UserStatusCallbackReq{
|
||
2 years ago
|
UserStatusBaseCallback: cbApi.UserStatusBaseCallback{
|
||
2 years ago
|
CallbackCommand: constant.CallbackUserOfflineCommand,
|
||
2 years ago
|
OperationID: operationID,
|
||
|
PlatformID: int32(platformID),
|
||
|
Platform: constant.PlatformIDToName(platformID),
|
||
|
},
|
||
|
UserID: userID,
|
||
3 years ago
|
},
|
||
2 years ago
|
Seq: int(time.Now().UnixNano() / 1e6),
|
||
|
ConnID: connID,
|
||
3 years ago
|
}
|
||
2 years ago
|
callbackUserOfflineResp := &cbApi.CallbackUserOfflineResp{CommonCallbackResp: &callbackResp}
|
||
2 years ago
|
if err := http.CallBackPostReturn(config.Config.Callback.CallbackUrl, constant.CallbackUserOfflineCommand, callbackOfflineReq, callbackUserOfflineResp, config.Config.Callback.CallbackUserOffline.CallbackTimeOut); err != nil {
|
||
3 years ago
|
callbackResp.ErrCode = http2.StatusInternalServerError
|
||
|
callbackResp.ErrMsg = err.Error()
|
||
|
}
|
||
|
return callbackResp
|
||
|
}
|
||
2 years ago
|
|
||
|
func callbackUserKickOff(operationID string, userID string, platformID int) cbApi.CommonCallbackResp {
|
||
|
callbackResp := cbApi.CommonCallbackResp{OperationID: operationID}
|
||
|
if !config.Config.Callback.CallbackUserKickOff.Enable {
|
||
|
return callbackResp
|
||
|
}
|
||
|
callbackUserKickOffReq := cbApi.CallbackUserKickOffReq{
|
||
|
UserStatusCallbackReq: cbApi.UserStatusCallbackReq{
|
||
|
UserStatusBaseCallback: cbApi.UserStatusBaseCallback{
|
||
|
CallbackCommand: constant.CallbackUserKickOffCommand,
|
||
|
OperationID: operationID,
|
||
|
PlatformID: int32(platformID),
|
||
|
Platform: constant.PlatformIDToName(platformID),
|
||
|
},
|
||
|
UserID: userID,
|
||
|
},
|
||
|
Seq: int(time.Now().UnixNano() / 1e6),
|
||
|
}
|
||
2 years ago
|
callbackUserKickOffResp := &cbApi.CallbackUserKickOffResp{CommonCallbackResp: &callbackResp}
|
||
2 years ago
|
if err := http.CallBackPostReturn(config.Config.Callback.CallbackUrl, constant.CallbackUserKickOffCommand, callbackUserKickOffReq, callbackUserKickOffResp, config.Config.Callback.CallbackUserOffline.CallbackTimeOut); err != nil {
|
||
2 years ago
|
callbackResp.ErrCode = http2.StatusInternalServerError
|
||
|
callbackResp.ErrMsg = err.Error()
|
||
|
}
|
||
|
return callbackResp
|
||
|
}
|