From 7c11e722d2b0bf251924ca398e01f82b265570cf Mon Sep 17 00:00:00 2001 From: "Xinwei Xiong(cubxxw)" <3293172751nss@gmail.com> Date: Mon, 13 Nov 2023 21:09:07 +0800 Subject: [PATCH] feat: add openim config ete code Signed-off-by: Xinwei Xiong(cubxxw) <3293172751nss@gmail.com> --- test/e2e/api/.keep | 1 - test/e2e/api/user/curd.go | 18 ++++++++-- test/e2e/api/user/user.go | 16 +++++++-- test/e2e/framework/config/.keep | 1 - test/e2e/framework/config/config.go | 51 ++++++++++++++++++++++++++++- 5 files changed, 78 insertions(+), 9 deletions(-) delete mode 100644 test/e2e/api/.keep delete mode 100644 test/e2e/framework/config/.keep diff --git a/test/e2e/api/.keep b/test/e2e/api/.keep deleted file mode 100644 index 4f07f1caf..000000000 --- a/test/e2e/api/.keep +++ /dev/null @@ -1 +0,0 @@ -.keep \ No newline at end of file diff --git a/test/e2e/api/user/curd.go b/test/e2e/api/user/curd.go index 28b55b682..9e8286384 100644 --- a/test/e2e/api/user/curd.go +++ b/test/e2e/api/user/curd.go @@ -1,7 +1,10 @@ package user import ( + "fmt" + gettoken "github.com/openimsdk/open-im-server/v3/test/e2e/api/token" + "github.com/openimsdk/open-im-server/v3/test/e2e/framework/config" ) // UserInfoRequest represents a request to get or update user information @@ -17,14 +20,20 @@ type GetUsersOnlineStatusRequest struct { // GetUsersInfo retrieves detailed information for a list of user IDs func GetUsersInfo(token string, userIDs []string) error { + + url := fmt.Sprintf("http://%s:%s/user/get_users_info", config.LoadConfig().APIHost, config.LoadConfig().APIPort) + requestBody := UserInfoRequest{ UserIDs: userIDs, } - return sendPostRequestWithToken("http://your-api-host:port/user/get_users_info", token, requestBody) + return sendPostRequestWithToken(url, token, requestBody) } // UpdateUserInfo updates the information for a user func UpdateUserInfo(token, userID, nickname, faceURL string) error { + + url := fmt.Sprintf("http://%s:%s/user/update_user_info", config.LoadConfig().APIHost, config.LoadConfig().APIPort) + requestBody := UserInfoRequest{ UserInfo: &gettoken.User{ UserID: userID, @@ -32,13 +41,16 @@ func UpdateUserInfo(token, userID, nickname, faceURL string) error { FaceURL: faceURL, }, } - return sendPostRequestWithToken("http://your-api-host:port/user/update_user_info", token, requestBody) + return sendPostRequestWithToken(url, token, requestBody) } // GetUsersOnlineStatus retrieves the online status for a list of user IDs func GetUsersOnlineStatus(token string, userIDs []string) error { + + url := fmt.Sprintf("http://%s:%s/user/get_users_online_status", config.LoadConfig().APIHost, config.LoadConfig().APIPort) + requestBody := GetUsersOnlineStatusRequest{ UserIDs: userIDs, } - return sendPostRequestWithToken("http://your-api-host:port/user/get_users_online_status", token, requestBody) + return sendPostRequestWithToken(url, token, requestBody) } diff --git a/test/e2e/api/user/user.go b/test/e2e/api/user/user.go index 63c6659a0..66419b735 100644 --- a/test/e2e/api/user/user.go +++ b/test/e2e/api/user/user.go @@ -8,6 +8,7 @@ import ( "net/http" gettoken "github.com/openimsdk/open-im-server/v3/test/e2e/api/token" + "github.com/openimsdk/open-im-server/v3/test/e2e/framework/config" ) // ForceLogoutRequest represents a request to force a user logout @@ -34,30 +35,39 @@ type Pagination struct { // ForceLogout forces a user to log out func ForceLogout(token, userID string, platformID int) error { + + url := fmt.Sprintf("http://%s:%s/auth/force_logout", config.LoadConfig().APIHost, config.LoadConfig().APIPort) + requestBody := ForceLogoutRequest{ PlatformID: platformID, UserID: userID, } - return sendPostRequestWithToken("http://your-api-host:port/auth/force_logout", token, requestBody) + return sendPostRequestWithToken(url, token, requestBody) } // CheckUserAccount checks if the user accounts exist func CheckUserAccount(token string, userIDs []string) error { + + url := fmt.Sprintf("http://%s:%s/user/account_check", config.LoadConfig().APIHost, config.LoadConfig().APIPort) + requestBody := CheckUserAccountRequest{ CheckUserIDs: userIDs, } - return sendPostRequestWithToken("http://your-api-host:port/user/account_check", token, requestBody) + return sendPostRequestWithToken(url, token, requestBody) } // GetUsers retrieves a list of users with pagination func GetUsers(token string, pageNumber, showNumber int) error { + + url := fmt.Sprintf("http://%s:%s/user/account_check", config.LoadConfig().APIHost, config.LoadConfig().APIPort) + requestBody := GetUsersRequest{ Pagination: Pagination{ PageNumber: pageNumber, ShowNumber: showNumber, }, } - return sendPostRequestWithToken("http://your-api-host:port/user/get_users", token, requestBody) + return sendPostRequestWithToken(url, token, requestBody) } // sendPostRequestWithToken sends a POST request with a token in the header diff --git a/test/e2e/framework/config/.keep b/test/e2e/framework/config/.keep deleted file mode 100644 index 4f07f1caf..000000000 --- a/test/e2e/framework/config/.keep +++ /dev/null @@ -1 +0,0 @@ -.keep \ No newline at end of file diff --git a/test/e2e/framework/config/config.go b/test/e2e/framework/config/config.go index dcf87cecf..f790de5f3 100644 --- a/test/e2e/framework/config/config.go +++ b/test/e2e/framework/config/config.go @@ -1,6 +1,9 @@ package config -import "flag" +import ( + "flag" + "os" +) // Flags is the flag set that AddOptions adds to. Test authors should // also use it instead of directly adding to the global command line. @@ -19,3 +22,49 @@ func CopyFlags(source *flag.FlagSet, target *flag.FlagSet) { target.Var(flag.Value, flag.Name, flag.Usage) }) } + +// Config defines the configuration structure for the OpenIM components. +type Config struct { + APIHost string + APIPort string + MsgGatewayHost string + MsgTransferHost string + PushHost string + RPCAuthHost string + RPCConversationHost string + RPCFriendHost string + RPCGroupHost string + RPCMsgHost string + RPCThirdHost string + RPCUserHost string + // Add other configuration fields as needed +} + +// LoadConfig loads the configurations from environment variables or default values. +func LoadConfig() *Config { + return &Config{ + APIHost: getEnv("OPENIM_API_HOST", "127.0.0.1"), + APIPort: getEnv("API_OPENIM_PORT", "10002"), + + // TODO: Set default variable + MsgGatewayHost: getEnv("OPENIM_MSGGATEWAY_HOST", "default-msggateway-host"), + MsgTransferHost: getEnv("OPENIM_MSGTRANSFER_HOST", "default-msgtransfer-host"), + PushHost: getEnv("OPENIM_PUSH_HOST", "default-push-host"), + RPCAuthHost: getEnv("OPENIM_RPC_AUTH_HOST", "default-rpc-auth-host"), + RPCConversationHost: getEnv("OPENIM_RPC_CONVERSATION_HOST", "default-rpc-conversation-host"), + RPCFriendHost: getEnv("OPENIM_RPC_FRIEND_HOST", "default-rpc-friend-host"), + RPCGroupHost: getEnv("OPENIM_RPC_GROUP_HOST", "default-rpc-group-host"), + RPCMsgHost: getEnv("OPENIM_RPC_MSG_HOST", "default-rpc-msg-host"), + RPCThirdHost: getEnv("OPENIM_RPC_THIRD_HOST", "default-rpc-third-host"), + RPCUserHost: getEnv("OPENIM_RPC_USER_HOST", "default-rpc-user-host"), + } +} + +// getEnv is a helper function to read an environment variable or return a default value. +func getEnv(key, defaultValue string) string { + value, exists := os.LookupEnv(key) + if !exists { + return defaultValue + } + return value +}