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

Function createTabObj

pkg/wcore/workspace.go:270–291  ·  view source on GitHub ↗
(ctx context.Context, workspaceId string, name string, meta waveobj.MetaMapType)

Source from the content-addressed store, hash-verified

268}
269
270func createTabObj(ctx context.Context, workspaceId string, name string, meta waveobj.MetaMapType) (*waveobj.Tab, error) {
271 ws, err := GetWorkspace(ctx, workspaceId)
272 if err != nil {
273 return nil, fmt.Errorf("workspace %s not found: %w", workspaceId, err)
274 }
275 layoutStateId := uuid.NewString()
276 tab := &waveobj.Tab{
277 OID: uuid.NewString(),
278 Name: name,
279 BlockIds: []string{},
280 LayoutState: layoutStateId,
281 Meta: meta,
282 }
283 layoutState := &waveobj.LayoutState{
284 OID: layoutStateId,
285 }
286 ws.TabIds = append(ws.TabIds, tab.OID)
287 wstore.DBInsert(ctx, tab)
288 wstore.DBInsert(ctx, layoutState)
289 wstore.DBUpdate(ctx, ws)
290 return tab, nil
291}
292
293// Must delete all blocks individually first.
294// Also deletes LayoutState.

Callers 1

CreateTabFunction · 0.85

Calls 3

DBInsertFunction · 0.92
DBUpdateFunction · 0.92
GetWorkspaceFunction · 0.85

Tested by

no test coverage detected