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

Function DBUpdate

pkg/wstore/wstore_dbops.go:301–318  ·  view source on GitHub ↗
(ctx context.Context, val waveobj.WaveObj)

Source from the content-addressed store, hash-verified

299}
300
301func DBUpdate(ctx context.Context, val waveobj.WaveObj) error {
302 oid := waveobj.GetOID(val)
303 if oid == "" {
304 return fmt.Errorf("cannot update %T value with empty id", val)
305 }
306 jsonData, err := waveobj.ToJson(val)
307 if err != nil {
308 return err
309 }
310 return WithTx(ctx, func(tx *TxWrap) error {
311 table := waveObjTableName(val)
312 query := fmt.Sprintf("UPDATE %s SET data = ?, version = version+1 WHERE oid = ? RETURNING version", table)
313 newVersion := tx.GetInt(query, jsonData, oid)
314 waveobj.SetVersion(val, newVersion)
315 waveobj.ContextAddUpdate(ctx, waveobj.WaveObjUpdate{UpdateType: waveobj.UpdateType_Update, OType: val.GetOType(), OID: oid, Obj: val})
316 return nil
317 })
318}
319
320func DBUpdateFn[T waveobj.WaveObj](ctx context.Context, id string, updateFn func(T)) error {
321 return WithTx(ctx, func(tx *TxWrap) error {

Callers 15

SetWindowPosAndSizeMethod · 0.92
AgreeTosMethod · 0.92
UpdateObjectMethod · 0.92
setTermSizeInDBFunction · 0.92
UpdateWorkspaceFunction · 0.92
createTabObjFunction · 0.92
DeleteTabFunction · 0.92
SetActiveTabFunction · 0.92
UpdateWorkspaceTabIdsFunction · 0.92
SetIconFunction · 0.92
SetColorFunction · 0.92
SetNameFunction · 0.92

Calls 8

GetOIDFunction · 0.92
ToJsonFunction · 0.92
SetVersionFunction · 0.92
ContextAddUpdateFunction · 0.92
waveObjTableNameFunction · 0.85
GetIntMethod · 0.80
WithTxFunction · 0.70
GetOTypeMethod · 0.65

Tested by

no test coverage detected