38 lines
855 B
Go
38 lines
855 B
Go
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)
|
|
}
|