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 }