Monorepo for Tangled

appview/db: add GetStarrers to list stargazers for a repo

Signed-off-by: Patrick Dewey <p@pdewey.com>

pdewey.com 4dc4f579 e326cc53

verified
+31
+31
appview/db/star.go
··· 51 51 return &star, nil 52 52 } 53 53 54 + func GetStars(e Execer, subjectAt syntax.ATURI) ([]models.Star, error) { 55 + query := ` 56 + select did, subject_at, created, rkey 57 + from stars 58 + where subject_at = ? 59 + order by created desc 60 + ` 61 + rows, err := e.Query(query, subjectAt) 62 + if err != nil { 63 + return nil, err 64 + } 65 + defer rows.Close() 66 + 67 + var stars []models.Star 68 + for rows.Next() { 69 + var star models.Star 70 + var created string 71 + if err := rows.Scan(&star.Did, &star.RepoAt, &created, &star.Rkey); err != nil { 72 + return nil, err 73 + } 74 + 75 + star.Created = time.Now() 76 + if t, err := time.Parse(time.RFC3339, created); err == nil { 77 + star.Created = t 78 + } 79 + stars = append(stars, star) 80 + } 81 + 82 + return stars, rows.Err() 83 + } 84 + 54 85 // Remove a star 55 86 func DeleteStar(e Execer, did string, subjectAt syntax.ATURI) error { 56 87 _, err := e.Exec(`delete from stars where did = ? and subject_at = ?`, did, subjectAt)