diff --git a/appview/db/pipeline.go b/appview/db/pipeline.go index b643628c..21f89e45 100644 --- a/appview/db/pipeline.go +++ b/appview/db/pipeline.go @@ -1,6 +1,7 @@ package db import ( + "context" "fmt" "slices" "strings" @@ -132,7 +133,7 @@ func AddTrigger(e Execer, trigger models.Trigger) (int64, error) { return res.LastInsertId() } -func AddPipelineStatus(e Execer, status models.PipelineStatus) error { +func AddPipelineStatus(ctx context.Context, e Execer, status models.PipelineStatus) error { args := []any{ status.Spindle, status.Rkey, @@ -164,7 +165,7 @@ func AddPipelineStatus(e Execer, status models.PipelineStatus) error { ) values (%s) `, strings.Join(placeholders, ",")) - _, err := e.Exec(query, args...) + _, err := e.ExecContext(ctx, query, args...) return err } diff --git a/appview/db/spindle.go b/appview/db/spindle.go index cafab70c..35030343 100644 --- a/appview/db/spindle.go +++ b/appview/db/spindle.go @@ -1,6 +1,7 @@ package db import ( + "context" "database/sql" "fmt" "strings" @@ -10,7 +11,7 @@ import ( "tangled.org/core/orm" ) -func GetSpindles(e Execer, filters ...orm.Filter) ([]models.Spindle, error) { +func GetSpindles(ctx context.Context, e Execer, filters ...orm.Filter) ([]models.Spindle, error) { var spindles []models.Spindle var conditions []string @@ -34,7 +35,7 @@ func GetSpindles(e Execer, filters ...orm.Filter) ([]models.Spindle, error) { whereClause, ) - rows, err := e.Query(query, args...) + rows, err := e.QueryContext(ctx, query, args...) if err != nil { return nil, err diff --git a/appview/ingester.go b/appview/ingester.go index c30ada1f..73fa8520 100644 --- a/appview/ingester.go +++ b/appview/ingester.go @@ -529,6 +529,7 @@ func (i *Ingester) ingestSpindle(ctx context.Context, e *jmodels.Event) error { // get record from db first spindles, err := db.GetSpindles( + ctx, ddb, orm.FilterEq("owner", did), orm.FilterEq("instance", instance), diff --git a/appview/spindles/spindles.go b/appview/spindles/spindles.go index 670f924c..7ca4a6d9 100644 --- a/appview/spindles/spindles.go +++ b/appview/spindles/spindles.go @@ -58,6 +58,7 @@ func (s *Spindles) Router() http.Handler { func (s *Spindles) spindles(w http.ResponseWriter, r *http.Request) { user := s.OAuth.GetMultiAccountUser(r) all, err := db.GetSpindles( + r.Context(), s.Db, orm.FilterEq("owner", user.Active.Did), ) @@ -87,6 +88,7 @@ func (s *Spindles) dashboard(w http.ResponseWriter, r *http.Request) { l = l.With("instance", instance) spindles, err := db.GetSpindles( + r.Context(), s.Db, orm.FilterEq("instance", instance), orm.FilterEq("owner", user.Active.Did), @@ -274,6 +276,7 @@ func (s *Spindles) delete(w http.ResponseWriter, r *http.Request) { } spindles, err := db.GetSpindles( + r.Context(), s.Db, orm.FilterEq("owner", user.Active.Did), orm.FilterEq("instance", instance), @@ -394,6 +397,7 @@ func (s *Spindles) retry(w http.ResponseWriter, r *http.Request) { l = l.With("user", user.Active.Did) spindles, err := db.GetSpindles( + r.Context(), s.Db, orm.FilterEq("owner", user.Active.Did), orm.FilterEq("instance", instance), @@ -437,6 +441,7 @@ func (s *Spindles) retry(w http.ResponseWriter, r *http.Request) { } verifiedSpindle, err := db.GetSpindles( + r.Context(), s.Db, orm.FilterEq("id", rowId), ) @@ -470,6 +475,7 @@ func (s *Spindles) addMember(w http.ResponseWriter, r *http.Request) { l = l.With("user", user.Active.Did) spindles, err := db.GetSpindles( + r.Context(), s.Db, orm.FilterEq("owner", user.Active.Did), orm.FilterEq("instance", instance), @@ -606,6 +612,7 @@ func (s *Spindles) removeMember(w http.ResponseWriter, r *http.Request) { l = l.With("user", user.Active.Did) spindles, err := db.GetSpindles( + r.Context(), s.Db, orm.FilterEq("owner", user.Active.Did), orm.FilterEq("instance", instance), diff --git a/appview/state/spindlestream.go b/appview/state/spindlestream.go index a63d1305..041c53f0 100644 --- a/appview/state/spindlestream.go +++ b/appview/state/spindlestream.go @@ -27,6 +27,7 @@ func Spindlestream(ctx context.Context, c *config.Config, d *db.DB, enforcer *rb logger = log.SubLogger(logger, "spindlestream") spindles, err := db.GetSpindles( + ctx, d, orm.FilterIsNot("verified", "null"), ) @@ -105,7 +106,7 @@ func ingestPipelineStatus(ctx context.Context, logger *slog.Logger, d *db.DB, so ExitCode: exitCode, } - err = db.AddPipelineStatus(d, status) + err = db.AddPipelineStatus(ctx, d, status) if err != nil { return fmt.Errorf("failed to add pipeline status: %w", err) } diff --git a/appview/state/state.go b/appview/state/state.go index ac927ede..5b9557f5 100644 --- a/appview/state/state.go +++ b/appview/state/state.go @@ -295,6 +295,7 @@ func (s *State) UpgradeBanner(w http.ResponseWriter, r *http.Request) { } spindles, err := db.GetSpindles( + r.Context(), s.db, orm.FilterEq("owner", user.Active.Did), orm.FilterEq("needs_upgrade", 1),