Files
old-backend/config/config.go

56 lines
1.6 KiB
Go
Raw Normal View History

2023-09-05 11:37:03 +02:00
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{
2023-09-18 12:27:40 +02:00
2023-09-05 11:37:03 +02:00
Service: Service{
// 9000 DEFAULT FOR DEV ENVIRONMENT
2023-10-12 05:23:34 +02:00
Port: getEnv("NOVATECH_SERVICE_PORT", "9000"),
Environment: getEnv("NOVATECH_SERVICE_ENVIRONMENT", "DEV"),
MapboxAccessToken: getEnv("NOVATECH_SERVICE_MAPBOX_ACCESS_TOKEN", ""),
2023-09-05 11:37:03 +02:00
},
AdminService: Service{
// 8080 DEFAULT FOR DEV ENVIRONMENT
Port: getEnv("NOVATECH_ADMIN_SERVICE_PORT", "8080"),
Environment: getEnv("NOVATECH_ADMIN_SERVICE_ENVIRONMENT", "DEV"),
},
Database: Database{
2023-09-27 08:04:50 +02:00
UserName: getEnv("NOVATECH_DATABASE_USERNAME", "username"),
Password: getEnv("NOVATECH_DATABASE_PASSWORD", "password"),
DatabaseName: getEnv("NOVATECH_DATABASE_NAME", "dbname"),
2023-09-18 12:27:40 +02:00
HostName: getEnv("NOVATECH_DATABASE_ADDRESS", "localhost"),
2023-09-27 08:04:50 +02:00
Port: getEnv("NOVATECH_DATABASE_PORT", "5432"),
2023-09-05 11:37:03 +02:00
},
2023-09-21 11:59:08 +02:00
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", ""),
2023-10-30 19:21:43 +01:00
},
AWS: AWS {
AccessKey: getEnv("AWS_ACCESS_KEY_ID", ""),
SecretKey: getEnv("AWS_SECRET_ACCESS_KEY", ""),
2023-09-21 11:59:08 +02:00
},
2023-09-05 11:37:03 +02:00
}
return nil
}