Files
wagfarm/wagfarm-api/main.go
2025-04-14 17:07:12 +02:00

60 lines
1.2 KiB
Go

package main
import (
"log"
"os"
"wagfarm-api/database"
"wagfarm-api/models"
"wagfarm-api/routes"
"github.com/gin-gonic/gin"
)
func initLogging() {
// Ensure the logs directory exists
if err := os.MkdirAll("logs", 0755); err != nil {
log.Fatalf("Failed to create log directory: %v", err)
}
// Open the log file
f, err := os.OpenFile("logs/api.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
log.Fatalf("Failed to open log file: %v", err)
}
// Set log output
log.SetOutput(f)
gin.DefaultWriter = f // capture Gin logs too
}
func dbMigration() {
database.DB.AutoMigrate(
&models.AssetType{},
&models.Asset{},
&models.LogType{},
&models.Log{},
)
db.Create(&models.AssetType{Name: "machine"})
db.Create(&models.AssetType{Name: "field"})
db.Create(&models.AssetType{Name: "animal"})
db.Create(&models.AssetType{Name: "substance"})
err := db.SetupJoinTable(&models.Fertilizer{}, "Ingredients", &models.FertilizerIngredient{})
}
func main() {
initLogging()
log.Println("Starting API server...")
database.Connect()
r := gin.Default()
routes.SetupRoutes(r)
if err := r.Run(":8080"); err != nil {
log.Fatalf("Failed to run server: %v", err)
}
}