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

Function createSubBlockObj

pkg/wcore/block.go:38–56  ·  view source on GitHub ↗
(ctx context.Context, parentBlockId string, blockDef *waveobj.BlockDef)

Source from the content-addressed store, hash-verified

36}
37
38func createSubBlockObj(ctx context.Context, parentBlockId string, blockDef *waveobj.BlockDef) (*waveobj.Block, error) {
39 return wstore.WithTxRtn(ctx, func(tx *wstore.TxWrap) (*waveobj.Block, error) {
40 parentBlock, _ := wstore.DBGet[*waveobj.Block](tx.Context(), parentBlockId)
41 if parentBlock == nil {
42 return nil, fmt.Errorf("parent block not found: %q", parentBlockId)
43 }
44 blockId := uuid.NewString()
45 blockData := &waveobj.Block{
46 OID: blockId,
47 ParentORef: waveobj.MakeORef(waveobj.OType_Block, parentBlockId).String(),
48 RuntimeOpts: nil,
49 Meta: blockDef.Meta,
50 }
51 wstore.DBInsert(tx.Context(), blockData)
52 parentBlock.SubBlockIds = append(parentBlock.SubBlockIds, blockId)
53 wstore.DBUpdate(tx.Context(), parentBlock)
54 return blockData, nil
55 })
56}
57
58func CreateBlock(ctx context.Context, tabId string, blockDef *waveobj.BlockDef, rtOpts *waveobj.RuntimeOpts) (rtnBlock *waveobj.Block, rtnErr error) {
59 return CreateBlockWithTelemetry(ctx, tabId, blockDef, rtOpts, true)

Callers 1

CreateSubBlockFunction · 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