(ctx context.Context, otype string, id string)
| 272 | } |
| 273 | |
| 274 | func DBDelete(ctx context.Context, otype string, id string) error { |
| 275 | err := WithTx(ctx, func(tx *TxWrap) error { |
| 276 | table := tableNameFromOType(otype) |
| 277 | query := fmt.Sprintf("DELETE FROM %s WHERE oid = ?", table) |
| 278 | tx.Exec(query, id) |
| 279 | waveobj.ContextAddUpdate(ctx, waveobj.WaveObjUpdate{UpdateType: waveobj.UpdateType_Delete, OType: otype, OID: id}) |
| 280 | return nil |
| 281 | }) |
| 282 | if err != nil { |
| 283 | return err |
| 284 | } |
| 285 | go func() { |
| 286 | defer func() { |
| 287 | panichandler.PanicHandler("DBDelete:filestore.DeleteZone", recover()) |
| 288 | }() |
| 289 | // we spawn a go routine here because we don't want to reuse the DB connection |
| 290 | // since DBDelete is called in a transaction from DeleteTab |
| 291 | deleteCtx, cancelFn := context.WithTimeout(context.Background(), 2*time.Second) |
| 292 | defer cancelFn() |
| 293 | err := filestore.WFS.DeleteZone(deleteCtx, id) |
| 294 | if err != nil { |
| 295 | log.Printf("error deleting filestore zone (after deleting block): %v", err) |
| 296 | } |
| 297 | }() |
| 298 | return nil |
| 299 | } |
| 300 | |
| 301 | func DBUpdate(ctx context.Context, val waveobj.WaveObj) error { |
| 302 | oid := waveobj.GetOID(val) |
no test coverage detected