Monorepo for Tangled

appview/db: propagate context through GetSpindles and AddPipelineStatus

Update all call sites of db.GetSpindles and db.AddPipelineStatus to pass
a context.Context, enabling proper cancellation and timeout propagation
to the database layer.

Signed-off-by: Matías Insaurralde <matias@insaurral.de>

authored by matias.tngl.sh and committed by tangled.org 9325b4fd c96d2e51

+17 -5
+3 -2
appview/db/pipeline.go
··· 1 1 package db 2 2 3 3 import ( 4 + "context" 4 5 "fmt" 5 6 "slices" 6 7 "strings" ··· 132 133 return res.LastInsertId() 133 134 } 134 135 135 - func AddPipelineStatus(e Execer, status models.PipelineStatus) error { 136 + func AddPipelineStatus(ctx context.Context, e Execer, status models.PipelineStatus) error { 136 137 args := []any{ 137 138 status.Spindle, 138 139 status.Rkey, ··· 164 165 ) values (%s) 165 166 `, strings.Join(placeholders, ",")) 166 167 167 - _, err := e.Exec(query, args...) 168 + _, err := e.ExecContext(ctx, query, args...) 168 169 return err 169 170 } 170 171
+3 -2
appview/db/spindle.go
··· 1 1 package db 2 2 3 3 import ( 4 + "context" 4 5 "database/sql" 5 6 "fmt" 6 7 "strings" ··· 10 11 "tangled.org/core/orm" 11 12 ) 12 13 13 - func GetSpindles(e Execer, filters ...orm.Filter) ([]models.Spindle, error) { 14 + func GetSpindles(ctx context.Context, e Execer, filters ...orm.Filter) ([]models.Spindle, error) { 14 15 var spindles []models.Spindle 15 16 16 17 var conditions []string ··· 34 35 whereClause, 35 36 ) 36 37 37 - rows, err := e.Query(query, args...) 38 + rows, err := e.QueryContext(ctx, query, args...) 38 39 39 40 if err != nil { 40 41 return nil, err
+1
appview/ingester.go
··· 529 529 530 530 // get record from db first 531 531 spindles, err := db.GetSpindles( 532 + ctx, 532 533 ddb, 533 534 orm.FilterEq("owner", did), 534 535 orm.FilterEq("instance", instance),
+7
appview/spindles/spindles.go
··· 58 58 func (s *Spindles) spindles(w http.ResponseWriter, r *http.Request) { 59 59 user := s.OAuth.GetMultiAccountUser(r) 60 60 all, err := db.GetSpindles( 61 + r.Context(), 61 62 s.Db, 62 63 orm.FilterEq("owner", user.Active.Did), 63 64 ) ··· 87 88 l = l.With("instance", instance) 88 89 89 90 spindles, err := db.GetSpindles( 91 + r.Context(), 90 92 s.Db, 91 93 orm.FilterEq("instance", instance), 92 94 orm.FilterEq("owner", user.Active.Did), ··· 274 276 } 275 277 276 278 spindles, err := db.GetSpindles( 279 + r.Context(), 277 280 s.Db, 278 281 orm.FilterEq("owner", user.Active.Did), 279 282 orm.FilterEq("instance", instance), ··· 394 397 l = l.With("user", user.Active.Did) 395 398 396 399 spindles, err := db.GetSpindles( 400 + r.Context(), 397 401 s.Db, 398 402 orm.FilterEq("owner", user.Active.Did), 399 403 orm.FilterEq("instance", instance), ··· 437 441 } 438 442 439 443 verifiedSpindle, err := db.GetSpindles( 444 + r.Context(), 440 445 s.Db, 441 446 orm.FilterEq("id", rowId), 442 447 ) ··· 470 475 l = l.With("user", user.Active.Did) 471 476 472 477 spindles, err := db.GetSpindles( 478 + r.Context(), 473 479 s.Db, 474 480 orm.FilterEq("owner", user.Active.Did), 475 481 orm.FilterEq("instance", instance), ··· 606 612 l = l.With("user", user.Active.Did) 607 613 608 614 spindles, err := db.GetSpindles( 615 + r.Context(), 609 616 s.Db, 610 617 orm.FilterEq("owner", user.Active.Did), 611 618 orm.FilterEq("instance", instance),
+2 -1
appview/state/spindlestream.go
··· 27 27 logger = log.SubLogger(logger, "spindlestream") 28 28 29 29 spindles, err := db.GetSpindles( 30 + ctx, 30 31 d, 31 32 orm.FilterIsNot("verified", "null"), 32 33 ) ··· 105 106 ExitCode: exitCode, 106 107 } 107 108 108 - err = db.AddPipelineStatus(d, status) 109 + err = db.AddPipelineStatus(ctx, d, status) 109 110 if err != nil { 110 111 return fmt.Errorf("failed to add pipeline status: %w", err) 111 112 }
+1
appview/state/state.go
··· 295 295 } 296 296 297 297 spindles, err := db.GetSpindles( 298 + r.Context(), 298 299 s.db, 299 300 orm.FilterEq("owner", user.Active.Did), 300 301 orm.FilterEq("needs_upgrade", 1),