diff --git a/cmd/main.go b/cmd/main.go index 9f5a74a..aa3bc50 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -1,34 +1,51 @@ package main import ( - "gorm.io/gorm" - "github.com/gin-gonic/gin" - "plateMate/controllers" - "plateMate/repositories" - "plateMate/models" + "log" + "os" + + "github.com/gin-gonic/gin" + "github.com/joho/godotenv" + "gorm.io/driver/mysql" + "gorm.io/gorm" + "gorm.io/gorm/logger" + + "gitea.urkob.com/longinos/plateMate/controllers" + "gitea.urkob.com/longinos/plateMate/models" + "gitea.urkob.com/longinos/plateMate/repositories" ) func main() { - // Inicializar la conexión de base de datos (db) - db, err := gorm.Open("tu_driver_de_base_de_datos", "tu_dsn_de_conexion") - if err != nil { - panic("Error al conectar a la base de datos: " + err.Error()) - } - defer db.Close() + // Cargar variables de entorno desde el archivo .env + err := godotenv.Load(".env") + if err != nil { + log.Fatal(err) + } - // Auto migración de modelos - db.AutoMigrate(&models.User{}, &models.Plate{}, &models.Order{}) + // Inicializar una nueva instancia de Gin + app := gin.Default() - // Crear una instancia del repositorio de usuarios y pasar la conexión de base de datos - userRepository := repositories.NewUserRepository(db) + // Inicializar la conexión de base de datos (db) + db, err := gorm.Open(mysql.Open(os.Getenv("DATABASE_URL")), &gorm.Config{ + Logger: logger.Default.LogMode(logger.Info), + }) + if err != nil { + log.Fatal("Error al conectar a la base de datos: ", err) + } - // Crear una instancia de Gin - router := gin.Default() + // Auto migración de modelos + err = db.AutoMigrate(&models.User{}, &models.Plate{}, &models.Order{}) + if err != nil { + log.Fatal("Error al migrar modelos: ", err) + } - // Configurar las rutas y pasar el repositorio de usuarios a los controladores - controllers.ConfigureUserRoutes(router, userRepository) - // Aquí puedes configurar las rutas para otros recursos (platos, pedidos, etc.) + // Crear una instancia del repositorio de usuarios y pasar la conexión de base de datos + userRepository := repositories.NewUserRepository(db) - // Iniciar la aplicación Gin - router.Run(":8080") + // Configurar las rutas y pasar el repositorio de usuarios a los controladores + controllers.ConfigureUserRoutes(app, userRepository) + // Aquí puedes configurar las rutas para otros recursos (platos, pedidos, etc.) + + // Iniciar la aplicación Gin + app.Run(":8080") }