56 lines
1.6 KiB
Go
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
|
|
}
|