MCPcopy Create free account
hub / github.com/compozy/agh / ResolveWorkspace

Method ResolveWorkspace

internal/api/core/workspaces.go:308–334  ·  view source on GitHub ↗

ResolveWorkspace resolves or registers a workspace from a path.

(c *gin.Context)

Source from the content-addressed store, hash-verified

306
307// ResolveWorkspace resolves or registers a workspace from a path.
308func (h *BaseHandlers) ResolveWorkspace(c *gin.Context) {
309 var req contract.ResolveWorkspaceRequest
310 if err := c.ShouldBindJSON(&req); err != nil {
311 h.respondError(
312 c,
313 http.StatusBadRequest,
314 fmt.Errorf("%s: decode resolve workspace request: %w", h.transportName(), err),
315 )
316 return
317 }
318
319 path := strings.TrimSpace(req.Path)
320 if err := validateAbsolutePathInternal(h.transportName(), "path", path); err != nil {
321 h.respondError(c, http.StatusBadRequest, err)
322 return
323 }
324
325 resolved, err := h.Workspaces.ResolveOrRegister(c.Request.Context(), path)
326 if err != nil {
327 h.respondError(c, StatusForWorkspaceError(err), err)
328 return
329 }
330
331 c.JSON(http.StatusOK, contract.WorkspaceResponse{
332 Workspace: WorkspacePayloadFromWorkspace(resolved.Workspace),
333 })
334}
335
336func (h *BaseHandlers) validateCreateSessionRequest(req contract.CreateSessionRequest) error {
337 if err := validateCreateSessionRequest(h.transportName(), req.Workspace, req.WorkspacePath); err != nil {

Calls 6

respondErrorMethod · 0.95
transportNameMethod · 0.95
StatusForWorkspaceErrorFunction · 0.85
ResolveOrRegisterMethod · 0.65