package api import ( "net/http" "codespace/internal/model" "codespace/internal/service" "github.com/gin-gonic/gin" ) type workspaceHandler struct { svc *service.WorkspaceService } func (h *workspaceHandler) create(c *gin.Context) { var req model.CreateWorkspaceRequest if err := c.ShouldBindJSON(&req); err != nil { writeBadRequest(c, "invalid json") return } if req.ID == "" { writeBadRequest(c, "id is required") return } ws, err := h.svc.Create(req.ID) if err != nil { writeError(c, err) return } c.JSON(http.StatusCreated, model.WorkspaceResponse{ID: ws.ID}) } func (h *workspaceHandler) get(c *gin.Context) { id := c.Param("id") ws, err := h.svc.Get(id) if err != nil { writeError(c, err) return } c.JSON(http.StatusOK, model.WorkspaceResponse{ID: ws.ID}) } func (h *workspaceHandler) delete(c *gin.Context) { id := c.Param("id") if err := h.svc.Delete(id); err != nil { writeError(c, err) return } c.Status(http.StatusNoContent) }