ncodingapi/database/database.go

98 lines
2.0 KiB
Go

package database
import (
"api/globals"
// "api/models"
// "api/utils"
"fmt"
"log"
"os"
"github.com/joho/godotenv"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
// Our database
var DB *gorm.DB
// ConnectDB - returns a pointer to a new database connection
func ConnectDB() 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
}
globals.API_RELEASE = os.Getenv("API_RELEASE")
DBURL := fmt.Sprintf("%s://%s:%s@%s:%s/%s", os.Getenv("DB_DRIVER"), os.Getenv("DB_USER"), os.Getenv("DB_PASSWORD"), os.Getenv("DB_HOST"), os.Getenv("DB_PORT"), os.Getenv("DB_NAME"))
log.Println("Opening connection to database")
db, err := gorm.Open(postgres.Open(DBURL), &gorm.Config{})
if err != nil {
return err
}
log.Println("Migrating database tables")
// if result := db.AutoMigrate(&models.User{}); result != nil {
// return result
// }
// if result := db.AutoMigrate(&models.Event{}); result != nil {
// return result
// }
// if result := db.AutoMigrate(&models.Server{}); result != nil {
// return result
// }
// Count how many servers we have on the database. If none, creates our initial server.
// var servers []models.Server
// db.Find(&servers)
// if len(servers) == 0 {
// server := models.Server{
// Name: "Pcast Main Server",
// IP: "177.153.50.98",
// }
// db.Create(&server)
// }
// Count how many users we have on the database. If none, creates our initial admin user.
// var users []models.User
// db.Find(&users)
// if len(users) == 0 {
// passwd, _ := utils.HashPassword("123456")
// user := models.User{
// Name: "Pcast Admin",
// Email: "pcast@pcast.com.br",
// CompanyName: "PCast",
// Password: passwd,
// Channel: "PCast",
// UserType: "A",
// Blocked: "N",
// Cancelled: "N",
// CreatedBy: "Auto",
// }
// db.Create(&user)
// }
DB = db
return nil
}