From 7380dd1e0b3a11bd6dddbc2476e1a0ccaf82a894 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 13 Mar 2024 11:22:34 +0800 Subject: [PATCH] refactor: extract nested structures in the config. --- internal/msggateway/callback.go | 102 +++-------------------------- internal/msggateway/n_ws_server.go | 4 +- 2 files changed, 11 insertions(+), 95 deletions(-) diff --git a/internal/msggateway/callback.go b/internal/msggateway/callback.go index afb83bcc4..1ed6c97bf 100644 --- a/internal/msggateway/callback.go +++ b/internal/msggateway/callback.go @@ -25,8 +25,8 @@ import ( "github.com/openimsdk/open-im-server/v3/pkg/common/http" ) -func CallbackUserOnline(ctx context.Context, globalConfig *config.GlobalConfig, userID string, platformID int, isAppBackground bool, connID string) error { - if !globalConfig.Callback.CallbackUserOnline.Enable { +func CallbackUserOnline(ctx context.Context, callback *config.Callback, userID string, platformID int, isAppBackground bool, connID string) error { + if !callback.CallbackUserOnline.Enable { return nil } req := cbapi.CallbackUserOnlineReq{ @@ -44,14 +44,14 @@ func CallbackUserOnline(ctx context.Context, globalConfig *config.GlobalConfig, ConnID: connID, } resp := cbapi.CommonCallbackResp{} - if err := http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, &req, &resp, globalConfig.Callback.CallbackUserOnline); err != nil { + if err := http.CallBackPostReturn(ctx, callback.CallbackUrl, &req, &resp, callback.CallbackUserOnline); err != nil { return err } return nil } -func CallbackUserOffline(ctx context.Context, globalConfig *config.GlobalConfig, userID string, platformID int, connID string) error { - if !globalConfig.Callback.CallbackUserOffline.Enable { +func CallbackUserOffline(ctx context.Context, callback *config.Callback, userID string, platformID int, connID string) error { + if !callback.CallbackUserOffline.Enable { return nil } req := &cbapi.CallbackUserOfflineReq{ @@ -68,14 +68,14 @@ func CallbackUserOffline(ctx context.Context, globalConfig *config.GlobalConfig, ConnID: connID, } resp := &cbapi.CallbackUserOfflineResp{} - if err := http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, req, resp, globalConfig.Callback.CallbackUserOffline); err != nil { + if err := http.CallBackPostReturn(ctx, callback.CallbackUrl, req, resp, callback.CallbackUserOffline); err != nil { return err } return nil } -func CallbackUserKickOff(ctx context.Context, globalConfig *config.GlobalConfig, userID string, platformID int) error { - if !globalConfig.Callback.CallbackUserKickOff.Enable { +func CallbackUserKickOff(ctx context.Context, callback *config.Callback, userID string, platformID int) error { + if !callback.CallbackUserKickOff.Enable { return nil } req := &cbapi.CallbackUserKickOffReq{ @@ -91,92 +91,8 @@ func CallbackUserKickOff(ctx context.Context, globalConfig *config.GlobalConfig, Seq: time.Now().UnixMilli(), } resp := &cbapi.CommonCallbackResp{} - if err := http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, req, resp, globalConfig.Callback.CallbackUserOffline); err != nil { + if err := http.CallBackPostReturn(ctx, callback.CallbackUrl, req, resp, callback.CallbackUserOffline); err != nil { return err } return nil } - -// func callbackUserOnline(operationID, userID string, platformID int, token string, isAppBackground bool, connID -// string) cbApi.CommonCallbackResp { -// callbackResp := cbApi.CommonCallbackResp{OperationID: operationID} -// if !config.Config.Callback.CallbackUserOnline.WithEnable { -// return callbackResp -// } -// callbackUserOnlineReq := cbApi.CallbackUserOnlineReq{ -// Token: token, -// UserStatusCallbackReq: cbApi.UserStatusCallbackReq{ -// UserStatusBaseCallback: cbApi.UserStatusBaseCallback{ -// CallbackCommand: constant.CallbackUserOnlineCommand, -// OperationID: operationID, -// PlatformID: int32(platformID), -// Platform: constant.PlatformIDToName(platformID), -// }, -// UserID: userID, -// }, -// Seq: int(time.Now().UnixNano() / 1e6), -// IsAppBackground: isAppBackground, -// ConnID: connID, -// } -// callbackUserOnlineResp := &cbApi.CallbackUserOnlineResp{CommonCallbackResp: &callbackResp} -// if err := http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, constant.CallbackUserOnlineCommand, -// callbackUserOnlineReq, callbackUserOnlineResp, config.Config.Callback.CallbackUserOnline.CallbackTimeOut); err != nil -// { -// callbackResp.ErrCode = http2.StatusInternalServerError -// callbackResp.ErrMsg = err.Error() -// } -// return callbackResp -//} -//func callbackUserOffline(operationID, userID string, platformID int, connID string) cbApi.CommonCallbackResp { -// callbackResp := cbApi.CommonCallbackResp{OperationID: operationID} -// if !config.Config.Callback.CallbackUserOffline.WithEnable { -// return callbackResp -// } -// callbackOfflineReq := cbApi.CallbackUserOfflineReq{ -// UserStatusCallbackReq: cbApi.UserStatusCallbackReq{ -// UserStatusBaseCallback: cbApi.UserStatusBaseCallback{ -// CallbackCommand: constant.CallbackUserOfflineCommand, -// OperationID: operationID, -// PlatformID: int32(platformID), -// Platform: constant.PlatformIDToName(platformID), -// }, -// UserID: userID, -// }, -// Seq: int(time.Now().UnixNano() / 1e6), -// ConnID: connID, -// } -// callbackUserOfflineResp := &cbApi.CallbackUserOfflineResp{CommonCallbackResp: &callbackResp} -// if err := http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, constant.CallbackUserOfflineCommand, -// callbackOfflineReq, callbackUserOfflineResp, config.Config.Callback.CallbackUserOffline.CallbackTimeOut); err != nil -// { -// callbackResp.ErrCode = http2.StatusInternalServerError -// callbackResp.ErrMsg = err.Error() -// } -// return callbackResp -//} -//func callbackUserKickOff(operationID string, userID string, platformID int) cbApi.CommonCallbackResp { -// callbackResp := cbApi.CommonCallbackResp{OperationID: operationID} -// if !config.Config.Callback.CallbackUserKickOff.WithEnable { -// 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), -// } -// callbackUserKickOffResp := &cbApi.CallbackUserKickOffResp{CommonCallbackResp: &callbackResp} -// if err := http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, constant.CallbackUserKickOffCommand, -// callbackUserKickOffReq, callbackUserKickOffResp, config.Config.Callback.CallbackUserOffline.CallbackTimeOut); err != -// nil { -// callbackResp.ErrCode = http2.StatusInternalServerError -// callbackResp.ErrMsg = err.Error() -// } -// return callbackResp -//} diff --git a/internal/msggateway/n_ws_server.go b/internal/msggateway/n_ws_server.go index f5838c703..e88b6a5e2 100644 --- a/internal/msggateway/n_ws_server.go +++ b/internal/msggateway/n_ws_server.go @@ -107,12 +107,12 @@ func (ws *WsServer) SetUserOnlineStatus(ctx context.Context, client *Client, sta } switch status { case constant.Online: - err := CallbackUserOnline(ctx, ws.globalConfig, client.UserID, client.PlatformID, client.IsBackground, client.ctx.GetConnID()) + err := CallbackUserOnline(ctx, &ws.globalConfig.Callback, client.UserID, client.PlatformID, client.IsBackground, client.ctx.GetConnID()) if err != nil { log.ZWarn(ctx, "CallbackUserOnline err", err) } case constant.Offline: - err := CallbackUserOffline(ctx, ws.globalConfig, client.UserID, client.PlatformID, client.ctx.GetConnID()) + err := CallbackUserOffline(ctx, &ws.globalConfig.Callback, client.UserID, client.PlatformID, client.ctx.GetConnID()) if err != nil { log.ZWarn(ctx, "CallbackUserOffline err", err) }