Files
old-backend/config/config.go
2023-11-01 15:14:38 +01:00

56 lines
1.6 KiB
Go

package config
import (
"log"
"github.com/joho/godotenv"
)
// AppConfig contains application configuration
var AppConfig Config
// Load application configuration
func Load() error {
// load .env file
err := godotenv.Load()
if err != nil {
log.Println(".env file not presented. Retrieving configuration from environment variables")
}
AppConfig = Config{
Service: Service{
// 9000 DEFAULT FOR DEV ENVIRONMENT
Port: getEnv("NOVATECH_SERVICE_PORT", "9000"),
Environment: getEnv("NOVATECH_SERVICE_ENVIRONMENT", "DEV"),
MapboxAccessToken: getEnv("NOVATECH_SERVICE_MAPBOX_ACCESS_TOKEN", ""),
},
AdminService: Service{
// 8080 DEFAULT FOR DEV ENVIRONMENT
Port: getEnv("NOVATECH_ADMIN_SERVICE_PORT", "8080"),
Environment: getEnv("NOVATECH_ADMIN_SERVICE_ENVIRONMENT", "DEV"),
},
Database: Database{
UserName: getEnv("NOVATECH_DATABASE_USERNAME", "username"),
Password: getEnv("NOVATECH_DATABASE_PASSWORD", "password"),
DatabaseName: getEnv("NOVATECH_DATABASE_NAME", "dbname"),
HostName: getEnv("NOVATECH_DATABASE_ADDRESS", "localhost"),
Port: getEnv("NOVATECH_DATABASE_PORT", "5432"),
},
Blockchain: Blockchain{
NetworkEndpoint: getEnv("NOVATECH_BLOCKCHAIN_NETWORK_ENDPOINT", ""),
ContractAddress: getEnv("NOVATECH_BLOCKCHAIN_CONTRACT_ADDRESS", ""),
WalletAddress: getEnv("NOVATECH_BLOCKCHAIN_WALLET_ADDRESS", ""),
WalletPrivateKey: getEnv("NOVATECH_BLOCKCHAIN_WALLET_PRIVATE_KEY", ""),
},
AWS: AWS {
AccessKey: getEnv("AWS_ACCESS_KEY_ID", ""),
SecretKey: getEnv("AWS_SECRET_ACCESS_KEY", ""),
},
}
return nil
}