|
- package config
-
- import (
- "fmt"
- "os"
- "time"
- )
-
- type Config struct {
- HTTPAddr string
- WSAddr string
- MQTTHost string
- MQTTUser string
- MQTTPass string
- MQTTClientID string
- KafkaURL string
- DBHost string
- DBUser string
- DBPass string
- DBName string
- HTTPClientID string
- ClientSecret string
- HTTPUsername string
- HTTPPassword string
- HTTPAudience string
- ConfigPath string
- APIBaseURL string
- APIAuthURL string
- // TLSInsecureSkipVerify enables skipping TLS cert verification (e.g. for dev); default false.
- TLSInsecureSkipVerify bool
- }
-
- func getEnv(key, def string) string {
- if v := os.Getenv(key); v != "" {
- return v
- }
- return def
- }
-
- func getEnvBool(key string, defaultVal bool) bool {
- switch os.Getenv(key) {
- case "1", "true", "TRUE", "yes":
- return true
- case "0", "false", "FALSE", "no":
- return false
- }
- return defaultVal
- }
-
- func getEnvPanic(key string) string {
- if v := os.Getenv(key); v != "" {
- return v
- }
- panic(fmt.Sprintf("environment variable %s is not set", key))
- }
-
- func Load() *Config {
- return &Config{
- HTTPAddr: getEnv("HTTP_HOST_PATH", "0.0.0.0:1902"),
- WSAddr: getEnv("HTTPWS_HOST_PATH", "0.0.0.0:8088"),
- MQTTHost: getEnv("MQTT_HOST", "192.168.1.101"),
- MQTTUser: getEnvPanic("MQTT_USERNAME"),
- MQTTPass: getEnvPanic("MQTT_PASSWORD"),
- MQTTClientID: getEnvPanic("MQTT_CLIENT_ID"),
- KafkaURL: getEnv("KAFKA_URL", "127.0.0.1:9092"),
- DBHost: getEnv("DBHost", "127.0.0.1"),
- DBUser: getEnvPanic("DBUser"),
- DBPass: getEnvPanic("DBPass"),
- DBName: getEnv("DBName", "go_crud_db"),
- HTTPClientID: getEnvPanic("HTTPClientID"),
- ClientSecret: getEnvPanic("ClientSecret"),
- HTTPUsername: getEnvPanic("HTTPUsername"),
- HTTPPassword: getEnvPanic("HTTPPassword"),
- HTTPAudience: getEnvPanic("HTTPAudience"),
- ConfigPath: getEnv("CONFIG_PATH", "/app/cmd/server/config.json"),
- APIBaseURL: getEnv("API_BASE_URL", "https://10.251.0.30:5050"),
- TLSInsecureSkipVerify: getEnvBool("TLS_INSECURE_SKIP_VERIFY", false),
- }
- }
-
- func LoadDecoder() *Config {
- return &Config{
- KafkaURL: getEnv("KAFKA_URL", "127.0.0.1:9092"),
- }
- }
-
- func LoadServer() *Config {
- return &Config{
- KafkaURL: getEnv("KAFKA_URL", "127.0.0.1:9092"),
- HTTPAddr: getEnv("HTTP_HOST_PATH", "0.0.0.0:1902"),
- DBHost: getEnv("DBHost", "127.0.0.1"),
- DBUser: getEnvPanic("DBUser"),
- DBPass: getEnvPanic("DBPass"),
- DBName: getEnv("DBName", "go_crud_db"),
- HTTPClientID: getEnvPanic("HTTPClientID"),
- ClientSecret: getEnvPanic("ClientSecret"),
- HTTPUsername: getEnvPanic("HTTPUsername"),
- HTTPPassword: getEnvPanic("HTTPPassword"),
- HTTPAudience: getEnvPanic("HTTPAudience"),
- ConfigPath: getEnv("CONFIG_PATH", "/app/cmd/server/config.json"),
- APIBaseURL: getEnv("API_BASE_URL", "https://10.251.0.30:5050"),
- APIAuthURL: getEnv("API_AUTH_URL", "https://10.251.0.30:10002"),
- TLSInsecureSkipVerify: getEnvBool("TLS_INSECURE_SKIP_VERIFY", false),
- }
- }
-
- func LoadBridge() *Config {
- return &Config{
- KafkaURL: getEnv("KAFKA_URL", "127.0.0.1:9092"),
- MQTTHost: getEnv("MQTT_HOST", "192.168.1.101"),
- MQTTUser: getEnvPanic("MQTT_USERNAME"),
- MQTTPass: getEnvPanic("MQTT_PASSWORD"),
- MQTTClientID: getEnvPanic("MQTT_CLIENT_ID"),
- }
- }
-
- func LoadLocation() *Config {
- return &Config{
- KafkaURL: getEnv("KAFKA_URL", "127.0.0.1:9092"),
- TLSInsecureSkipVerify: getEnvBool("TLS_INSECURE_SKIP_VERIFY", false),
- }
- }
-
- const (
- SMALL_CHANNEL_SIZE = 200
- MEDIUM_CHANNEL_SIZE = 500
- LARGE_CHANNEL_SIZE = 2000
- SMALL_TICKER_INTERVAL = 1 * time.Second
- MEDIUM_TICKER_INTERVAL = 2 * time.Second
- LARGE_TICKER_INTERVAL = 5 * time.Second
- )
|