holiday-api/db.go

38 lines
855 B
Go
Raw Normal View History

2023-06-16 07:42:50 +00:00
package main
import (
"fmt"
"github.com/jmoiron/sqlx"
_ "github.com/lib/pq"
"holiday-api/db"
2023-06-16 07:42:50 +00:00
"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
}
}
2023-06-16 07:42:50 +00:00
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")
2023-06-16 07:42:50 +00:00
return db.ConnectToDbNamed(host, port, user, password, dbname, sslMode, schema)
2023-06-16 07:42:50 +00:00
}