conex-builder/server/init.go
2024-09-01 23:42:51 -06:00

58 lines
1.2 KiB
Go

package main
import (
"database/sql"
"log"
"os"
"github.com/joho/godotenv"
_ "github.com/lib/pq"
)
const (
msgClosingDBConn = "Msg: init.go: Closing database connection"
msgDBConn = "Msg: init.go: Established database connection"
errDBConn = "Fatal: init.go: Connect to database"
errDBPing = "Fatal: init.go: Ping database"
errClosingDBConn = "Fatal: init.go: Closing database connection"
)
var db *sql.DB
func initialize() {
godotenv.Load()
if os.Getenv("BASE_URL") == "" ||
os.Getenv("CLIENT_ID") == "" ||
os.Getenv("CLIENT_SECRET") == "" ||
os.Getenv("RETURN_URL") == "" ||
os.Getenv("CANCEL_URL") == "" ||
os.Getenv("PORT") == "" {
log.Fatalf("Error 000: Missing credentials")
}
var err error
db, err = sql.Open("postgres", "host="+os.Getenv("DB_HOST")+
" port="+os.Getenv("DB_PORT")+
" user="+os.Getenv("DB_USER")+
" password="+os.Getenv("DB_PASS")+
" dbname="+os.Getenv("DB_NAME"))
if err != nil {
log.Fatalf("%s: %v", errDBConn, err)
}
if err := db.Ping(); err != nil {
log.Fatalf("%s: %v", errDBPing, err)
}
log.Println(msgDBConn)
}
func shutdown() {
if db != nil {
log.Println(msgClosingDBConn)
if err := db.Close(); err != nil {
log.Fatalf("%s: %v", errClosingDBConn, err)
}
}
}