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

Function createBlockObj

pkg/wcore/block.go:129–147  ·  view source on GitHub ↗
(ctx context.Context, tabId string, blockDef *waveobj.BlockDef, rtOpts *waveobj.RuntimeOpts)

Source from the content-addressed store, hash-verified

127}
128
129func createBlockObj(ctx context.Context, tabId string, blockDef *waveobj.BlockDef, rtOpts *waveobj.RuntimeOpts) (*waveobj.Block, error) {
130 return wstore.WithTxRtn(ctx, func(tx *wstore.TxWrap) (*waveobj.Block, error) {
131 tab, _ := wstore.DBGet[*waveobj.Tab](tx.Context(), tabId)
132 if tab == nil {
133 return nil, fmt.Errorf("tab not found: %q", tabId)
134 }
135 blockId := uuid.NewString()
136 blockData := &waveobj.Block{
137 OID: blockId,
138 ParentORef: waveobj.MakeORef(waveobj.OType_Tab, tabId).String(),
139 RuntimeOpts: rtOpts,
140 Meta: blockDef.Meta,
141 }
142 wstore.DBInsert(tx.Context(), blockData)
143 tab.BlockIds = append(tab.BlockIds, blockId)
144 wstore.DBUpdate(tx.Context(), tab)
145 return blockData, nil
146 })
147}
148
149// Must delete all blocks individually first.
150// Also deletes LayoutState.

Callers 1

CreateBlockWithTelemetryFunction · 0.85

Calls 7

WithTxRtnFunction · 0.92
DBGetFunction · 0.92
MakeORefFunction · 0.92
DBInsertFunction · 0.92
DBUpdateFunction · 0.92
ContextMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected