1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package handlers
- import (
- "net/http"
- "git.linuxforward.com/byom/byom-core/common"
- "git.linuxforward.com/byom/byom-core/store"
- "github.com/gin-gonic/gin"
- "github.com/google/uuid"
- "github.com/sirupsen/logrus"
- )
- type WorkspaceHandler struct {
- store *store.DataStore
- logger *logrus.Entry
- }
- func NewWorkspaceHandler(db *store.DataStore) *WorkspaceHandler {
- logger := logrus.WithField("core", "workspace-handler")
- return &WorkspaceHandler{
- store: db,
- logger: logger,
- }
- }
- type CreateWorkspaceRequest struct {
- Name string `json:"name" binding:"required"`
- }
- type WorkspaceResponse struct {
- ID string `json:"id"`
- Name string `json:"name"`
- }
- func (h *WorkspaceHandler) CreateWorkspace(c *gin.Context) {
- var req CreateWorkspaceRequest
- if err := c.ShouldBindJSON(&req); err != nil {
- c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
- return
- }
- workspace := &common.Workspace{
- ID: uuid.New(),
- Name: req.Name,
- }
- if err := h.store.CreateWorkspace(c, workspace); err != nil {
- h.logger.WithError(err).Error("failed to create user")
- c.JSON(http.StatusInternalServerError, gin.H{"error": "Internal server error"})
- return
- }
- c.JSON(http.StatusCreated, workspace)
- }
- func (h *WorkspaceHandler) GetWorkspace(c *gin.Context) {
- // Implementation
- }
|