package main import ( "fmt" "github.com/jmoiron/sqlx" _ "github.com/lib/pq" "holiday-api/db" "os" ) func envMustExist(env string) string { if value, exists := os.LookupEnv(env); !exists { panic(fmt.Sprintf("env variable '%s' not defined", env)) } else { return value } } func envOrDefault(env string, defaultValue string) string { if value, exists := os.LookupEnv(env); exists { return value } else { return defaultValue } } func connectToDb() (*sqlx.DB, error) { host := envMustExist("PSQL_HOST") port := envMustExist("PSQL_PORT") user := envMustExist("PSQL_USER") password := envMustExist("PSQL_PASSWORD") dbname := envMustExist("PSQL_DB") sslMode := envOrDefault("PSQL_SSLMODE", "disable") schema := envOrDefault("PSQL_SCHEMA", "public") return db.ConnectToDbNamed(host, port, user, password, dbname, sslMode, schema) }