diff --git a/appview/db/repos.go b/appview/db/repos.go index 5b7826f5..3afc7527 100644 --- a/appview/db/repos.go +++ b/appview/db/repos.go @@ -73,7 +73,7 @@ func GetAllRepos(e Execer, limit int) ([]Repo, error) { return repos, nil } -func GetRepos(e Execer, filters ...filter) ([]Repo, error) { +func GetRepos(e Execer, limit int, filters ...filter) ([]Repo, error) { repoMap := make(map[syntax.ATURI]*Repo) var conditions []string @@ -88,6 +88,11 @@ func GetRepos(e Execer, filters ...filter) ([]Repo, error) { whereClause = " where " + strings.Join(conditions, " and ") } + limitClause := "" + if limit != 0 { + limitClause = fmt.Sprintf(" limit %d", limit) + } + repoQuery := fmt.Sprintf( `select did, @@ -100,8 +105,10 @@ func GetRepos(e Execer, filters ...filter) ([]Repo, error) { spindle from repos r + %s %s`, whereClause, + limitClause, ) rows, err := e.Query(repoQuery, args...) @@ -585,7 +592,7 @@ func CollaboratingIn(e Execer, collaborator string) ([]Repo, error) { return nil, nil } - return GetRepos(e, FilterIn("id", repoIds)) + return GetRepos(e, 0, FilterIn("id", repoIds)) } type RepoStats struct { diff --git a/appview/knots/knots.go b/appview/knots/knots.go index 8bfb252c..811aaf86 100644 --- a/appview/knots/knots.go +++ b/appview/knots/knots.go @@ -319,6 +319,7 @@ func (k *Knots) dashboard(w http.ResponseWriter, r *http.Request) { repos, err := db.GetRepos( k.Db, + 0, db.FilterEq("knot", domain), db.FilterIn("did", members), ) diff --git a/appview/spindles/spindles.go b/appview/spindles/spindles.go index 8cb70c82..6e729231 100644 --- a/appview/spindles/spindles.go +++ b/appview/spindles/spindles.go @@ -104,6 +104,7 @@ func (s *Spindles) dashboard(w http.ResponseWriter, r *http.Request) { repos, err := db.GetRepos( s.Db, + 0, db.FilterEq("spindle", instance), ) if err != nil { diff --git a/appview/state/knotstream.go b/appview/state/knotstream.go index 536ccb93..675efb69 100644 --- a/appview/state/knotstream.go +++ b/appview/state/knotstream.go @@ -136,6 +136,7 @@ func updateRepoLanguages(d *db.DB, record tangled.GitRefUpdate) error { repos, err := db.GetRepos( d, + 0, db.FilterEq("did", record.RepoDid), db.FilterEq("name", record.RepoName), ) @@ -188,6 +189,7 @@ func ingestPipeline(d *db.DB, source ec.Source, msg ec.Message) error { // does this repo have a spindle configured? repos, err := db.GetRepos( d, + 0, db.FilterEq("did", record.TriggerMetadata.Repo.Did), db.FilterEq("name", record.TriggerMetadata.Repo.Repo), ) diff --git a/appview/state/profile.go b/appview/state/profile.go index 66f28b18..389ad096 100644 --- a/appview/state/profile.go +++ b/appview/state/profile.go @@ -52,6 +52,7 @@ func (s *State) profilePage(w http.ResponseWriter, r *http.Request) { repos, err := db.GetRepos( s.db, + 0, db.FilterEq("did", ident.DID.String()), ) if err != nil { @@ -176,6 +177,7 @@ func (s *State) reposPage(w http.ResponseWriter, r *http.Request) { repos, err := db.GetRepos( s.db, + 0, db.FilterEq("did", ident.DID.String()), ) if err != nil {