Files
wagfarm/wagfarm-api/main.go
2025-04-17 15:22:55 +02:00

56 lines
989 B
Go

package main
import (
"log"
"os"
"wagfarm-api/assets"
"wagfarm-api/database"
"wagfarm-api/logs"
"wagfarm-api/taxonomy"
"github.com/gin-gonic/gin"
)
func RegisterModels() {
assets.RegisterModels()
logs.RegisterModels()
taxonomy.RegisterModels()
}
func RegisterRoutes(r *gin.Engine) {
group := r.Group("/v1")
assets.RegisterRoutes(group)
logs.RegisterRoutes(group)
taxonomy.RegisterRoutes(group)
r.GET("/health", func(c *gin.Context) {
c.Status(200)
})
}
func main() {
log.SetOutput(os.Stdout)
log.Println("Starting API server...")
// connect to database
if err := database.Connect(); err != nil {
log.Fatalf("Database connection error: %v", err)
}
RegisterModels()
// Run migrations.
if err := database.Migrate(); err != nil {
log.Fatalf("Migration failed: %v", err)
}
log.Println("Database migrated successfully!")
r := gin.Default()
RegisterRoutes(r)
if err := r.Run(":8080"); err != nil {
log.Fatalf("Failed to run server: %v", err)
}
}