package main import ( "os" "github.com/gin-gonic/gin" ) func main() { r := gin.Default() // CORS for local dev r.Use(func(c *gin.Context) { c.Header("Access-Control-Allow-Origin", "*") c.Header("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE, OPTIONS") c.Header("Access-Control-Allow-Headers", "Content-Type, Authorization") if c.Request.Method == "OPTIONS" { c.AbortWithStatus(204) return } c.Next() }) r.POST("/tasks", CreateTask) r.GET("/tasks", ListTasks) r.GET("/tasks/:id", GetTask) r.PATCH("/tasks/:id", UpdateTask) r.DELETE("/tasks/:id", DeleteTask) r.GET("/health", func(c *gin.Context) { c.JSON(200, gin.H{"status": "ok"}) }) port := os.Getenv("PORT") if port == "" { port = "8095" } r.Run(":" + port) }