52 lines
1.2 KiB
Go
52 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
_ "github.com/go-sql-driver/mysql"
|
|
|
|
"go_selva/internal/api"
|
|
"go_selva/internal/db"
|
|
)
|
|
|
|
func main() {
|
|
// Initialize database connection
|
|
database, err := db.InitDB()
|
|
if err != nil {
|
|
log.Fatalf("Failed to initialize database: %v", err)
|
|
}
|
|
defer database.Close()
|
|
|
|
// Initialize Gin router
|
|
router := gin.Default()
|
|
|
|
// Load HTML templates
|
|
router.LoadHTMLGlob("templates/*")
|
|
|
|
// Serve static files (CSS)
|
|
router.Static("/static", "./static")
|
|
|
|
// Initialize API handlers (MOVE THIS UP!)
|
|
apiHandler := api.NewAPIHandler(database)
|
|
|
|
// Define API routes
|
|
apiGroup := router.Group("/nombres")
|
|
{
|
|
apiGroup.GET("/search", apiHandler.SearchNombres)
|
|
apiGroup.POST("", apiHandler.CreateNombre)
|
|
apiGroup.GET("", apiHandler.GetNombres)
|
|
apiGroup.GET("/:id", apiHandler.GetNombreByID)
|
|
apiGroup.PUT("/:id", apiHandler.UpdateNombre)
|
|
apiGroup.DELETE("/:id", apiHandler.DeleteNombre)
|
|
}
|
|
|
|
// HTML Routes (MOVE THIS DOWN!)
|
|
apiGroup.GET("/html", apiHandler.GetNombresHTML)
|
|
apiGroup.GET("/html/:id", apiHandler.GetNombreByIDHTML)
|
|
|
|
// Start the server
|
|
if err := router.Run(":8080"); err != nil {
|
|
log.Fatalf("Failed to start server: %v", err)
|
|
}
|
|
}
|