This repository has been archived on 2026-05-13. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
educode-controller/internal/api/server.go

40 lines
850 B
Go

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
}