apifiber/database/database.go

48 lines
1.1 KiB
Go

package database
import (
"api/config"
"api/globals"
"fmt"
"log"
"gorm.io/driver/postgres"
"gorm.io/gorm"
"gorm.io/gorm/logger"
)
// ConnectDB - returns a pointer to a new database connection
func ConnectDB(gormLogger logger.Interface) error {
// var erre error
// log.Println("Getting environment values")
// erre = godotenv.Load()
// if erre != nil {
// log.Printf("Error getting env, not comming through %v\n", erre)
// return erre
// }
driver := config.Configurations.Data.DB_DRIVER
user := config.Configurations.Data.DB_USER
password := config.Configurations.Data.DB_PASSWORD
host := config.Configurations.Data.DB_HOST
dbport := config.Configurations.Data.DB_PORT
dbname := config.Configurations.Data.DB_NAME
DBURL := fmt.Sprintf("%s://%s:%s@%s:%d/%s", driver, user, password, host, dbport, dbname)
log.Println("Opening connection to database")
db, err := gorm.Open(postgres.Open(DBURL), &gorm.Config{
Logger: gormLogger,
})
if err != nil {
return err
}
globals.DB = db
return nil
}