MCPcopy
hub / github.com/wavetermdev/waveterm / ListWorkspaces

Function ListWorkspaces

pkg/wcore/workspace.go:386–415  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

384}
385
386func ListWorkspaces(ctx context.Context) (waveobj.WorkspaceList, error) {
387 workspaces, err := wstore.DBGetAllObjsByType[*waveobj.Workspace](ctx, waveobj.OType_Workspace)
388 if err != nil {
389 return nil, err
390 }
391 windows, err := wstore.DBGetAllObjsByType[*waveobj.Window](ctx, waveobj.OType_Window)
392 if err != nil {
393 return nil, err
394 }
395 workspaceToWindow := make(map[string]string)
396 for _, window := range windows {
397 workspaceToWindow[window.WorkspaceId] = window.OID
398 }
399
400 var wl waveobj.WorkspaceList
401 for _, workspace := range workspaces {
402 if workspace.Name == "" || workspace.Icon == "" || workspace.Color == "" {
403 continue
404 }
405 windowId, ok := workspaceToWindow[workspace.OID]
406 if !ok {
407 windowId = ""
408 }
409 wl = append(wl, &waveobj.WorkspaceListEntry{
410 WorkspaceId: workspace.OID,
411 WindowId: windowId,
412 })
413 }
414 return wl, nil
415}
416
417func SetIcon(workspaceId string, icon string) error {
418 ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)

Callers 4

WorkspaceListCommandMethod · 0.92
ListWorkspacesMethod · 0.92
UpdateWorkspaceFunction · 0.85
DeleteWorkspaceFunction · 0.85

Calls 1

DBGetAllObjsByTypeFunction · 0.92

Tested by

no test coverage detected