package api import ( "github.com/gin-gonic/gin" "k8s.io/client-go/kubernetes" ) // NewServer creates and configures a new Gin server. func NewServer(clientset *kubernetes.Clientset) *gin.Engine { r := gin.Default() // Create a new handler with the clientset h := NewHandler(clientset) // Health check endpoint r.GET("/health", func(c *gin.Context) { c.JSON(200, gin.H{ "status": "ok", }) }) workspaces := r.Group("/workspaces") { workspaces.POST("", h.createWorkspace) workspaces.DELETE("/:ID", h.deleteWorkspace) workspaces.GET("/:ID", h.getWorkspaceByID) workspaces.GET("", h.getWorkspace) // workspaces.PATCH("/:workspaceID", h.extendWorkspace) } pvcs := r.Group("/pvcs") { pvcs.POST("", h.createPvc) pvcs.DELETE("/:ID", h.deletePvc) pvcs.GET("/:ID", h.getPvcByID) pvcs.GET("", h.getPvc) } return r }