Update config with server configuration

This commit is contained in:
Bilal
2020-05-08 10:41:49 +02:00
parent 6d626ccecc
commit 9a2425d245
2 changed files with 60 additions and 13 deletions

View File

@@ -8,17 +8,32 @@ import (
"strconv"
)
var WebServerConfig structures.WebServerConfig
var WorkerServerConfig structures.WorkerServerConfig
var ClientConfig structures.ClientConfig
var defaultValues = make(map[string]string)
func InitConfig() {
var defaultClientConfigValues = make(map[string]string)
var defaultServerConfigValues = make(map[string]string)
func InitServerConfig() {
loadEnvVariables()
initServerConfigDefaultValues()
generateServerConfigObject()
}
func InitClientConfig() {
loadEnvVariables()
initClientConfigDefaultValues()
generateClientConfigObject()
}
func loadEnvVariables() {
err := godotenv.Load()
if err != nil {
log.Fatal("Unable to load ENV variables")
}
initDefaultValues()
generateClientConfigObject()
}
func generateClientConfigObject() {
@@ -29,18 +44,38 @@ func generateClientConfigObject() {
ClientConfig.ProxyListBaseURL = getString("PROXY_LIST_BASE_URL")
}
func initDefaultValues() {
defaultValues["CLIENT_CONNECTIONS_COUNT"] = "5"
defaultValues["CLIENT_CONNECTION_TIMEOUT"] = "2"
defaultValues["WORKER_SERVER_ADDRESS"] = "127.0.0.1:1338"
defaultValues["REQUEST_MESSAGE_PREFIX"] = "URL "
defaultValues["PROXY_LIST_BASE_URL"] = "https://www.proxy-list.download/api/v1/get?type="
func generateServerConfigObject() {
WebServerConfig.Address = getString("WEB_SERVER_ADDRESS")
WebServerConfig.APIKey = getString("WEB_SERVER_API_KEY")
WebServerConfig.Timeout = getInt("WEB_SERVER_TIMEOUT")
WorkerServerConfig.Address = getString("WORKER_SERVER_ADDRESS")
WorkerServerConfig.WorkersCount = getInt("WORKER_SERVER_WORKERS_COUNT")
WorkerServerConfig.RequestMessagePrefix = getString("WORKER_SERVER_REQUEST_MESSAGE_PREFIX")
}
func initClientConfigDefaultValues() {
defaultClientConfigValues["CLIENT_CONNECTIONS_COUNT"] = "5"
defaultClientConfigValues["CLIENT_CONNECTION_TIMEOUT"] = "2"
defaultClientConfigValues["WORKER_SERVER_ADDRESS"] = "127.0.0.1:1338"
defaultClientConfigValues["REQUEST_MESSAGE_PREFIX"] = "URL "
defaultClientConfigValues["PROXY_LIST_BASE_URL"] = "https://www.proxy-list.download/api/v1/get?type="
}
func initServerConfigDefaultValues() {
defaultServerConfigValues["WEB_SERVER_ADDRESS"] = "127.0.0.1:1337"
defaultServerConfigValues["WEB_SERVER_API_KEY"] = "b8be5a3b639d465039e8fbe7582270a7"
defaultServerConfigValues["WEB_SERVER_TIMEOUT"] = "100"
defaultServerConfigValues["WORKER_SERVER_ADDRESS"] = "127.0.0.1:1338"
defaultServerConfigValues["WORKER_SERVER_WORKERS_COUNT"] = "50"
defaultServerConfigValues["WORKER_SERVER_REQUEST_MESSAGE_PREFIX"] = "URL "
}
func getInt(key string) int {
value := os.Getenv(key)
if len(value) == 0 {
value = defaultValues[key]
value = defaultClientConfigValues[key]
}
numericalValue, err := strconv.Atoi(value)
@@ -53,7 +88,7 @@ func getInt(key string) int {
func getString(key string) string {
value := os.Getenv(key)
if len(value) == 0 {
return defaultValues[key]
return defaultClientConfigValues[key]
}
return value
}

View File

@@ -21,6 +21,18 @@ type ProxyServer struct {
Address string
}
type WebServerConfig struct {
Address string
APIKey string
Timeout int // In seconds
}
type WorkerServerConfig struct {
Address string
WorkersCount int
RequestMessagePrefix string
}
type ClientConfig struct {
ConnectionsCount int
ConnectionTimeout int // In seconds