Files
neomovies-api/pkg/config/config.go

73 lines
2.1 KiB
Go
Raw Normal View History

2025-08-07 13:47:42 +00:00
package config
import (
"log"
"os"
)
type Config struct {
2025-08-28 21:25:21 +03:00
MongoURI string
MongoDBName string
TMDBAccessToken string
JWTSecret string
Port string
BaseURL string
NodeEnv string
GmailUser string
GmailPassword string
LumexURL string
AllohaToken string
RedAPIBaseURL string
RedAPIKey string
GoogleClientID string
2025-08-08 16:47:02 +00:00
GoogleClientSecret string
GoogleRedirectURL string
FrontendURL string
2025-08-28 21:25:21 +03:00
VibixHost string
VibixToken string
2025-08-07 13:47:42 +00:00
}
func New() *Config {
mongoURI := getMongoURI()
2025-08-08 16:47:02 +00:00
2025-08-07 13:47:42 +00:00
return &Config{
2025-08-28 21:25:21 +03:00
MongoURI: mongoURI,
MongoDBName: getEnv(EnvMongoDBName, DefaultMongoDBName),
TMDBAccessToken: getEnv(EnvTMDBAccessToken, ""),
JWTSecret: getEnv(EnvJWTSecret, DefaultJWTSecret),
Port: getEnv(EnvPort, DefaultPort),
BaseURL: getEnv(EnvBaseURL, DefaultBaseURL),
NodeEnv: getEnv(EnvNodeEnv, DefaultNodeEnv),
GmailUser: getEnv(EnvGmailUser, ""),
GmailPassword: getEnv(EnvGmailPassword, ""),
LumexURL: getEnv(EnvLumexURL, ""),
AllohaToken: getEnv(EnvAllohaToken, ""),
RedAPIBaseURL: getEnv(EnvRedAPIBaseURL, DefaultRedAPIBase),
RedAPIKey: getEnv(EnvRedAPIKey, ""),
GoogleClientID: getEnv(EnvGoogleClientID, ""),
2025-08-08 16:47:02 +00:00
GoogleClientSecret: getEnv(EnvGoogleClientSecret, ""),
GoogleRedirectURL: getEnv(EnvGoogleRedirectURL, ""),
FrontendURL: getEnv(EnvFrontendURL, ""),
2025-08-28 21:25:21 +03:00
VibixHost: getEnv(EnvVibixHost, DefaultVibixHost),
VibixToken: getEnv(EnvVibixToken, ""),
2025-08-07 13:47:42 +00:00
}
}
func getMongoURI() string {
2025-08-08 16:47:02 +00:00
for _, envVar := range []string{"MONGO_URI", "MONGODB_URI", "DATABASE_URL", "MONGO_URL"} {
2025-08-07 13:47:42 +00:00
if value := os.Getenv(envVar); value != "" {
log.Printf("DEBUG: Using %s for MongoDB connection", envVar)
return value
}
}
log.Printf("DEBUG: No MongoDB URI environment variable found")
return ""
}
func getEnv(key, defaultValue string) string {
if value := os.Getenv(key); value != "" {
return value
}
return defaultValue
2025-08-28 21:25:21 +03:00
}