forked from tangled.org/core
Monorepo for Tangled — https://tangled.org
1package db 2 3import "time" 4 5type Repo struct { 6 Did string 7 Name string 8 Knot string 9 Created *time.Time 10} 11 12func (d *DB) GetAllReposByDid(did string) ([]Repo, error) { 13 var repos []Repo 14 15 rows, err := d.db.Query(`select did, name, knot, created from repos where did = ?`, did) 16 if err != nil { 17 return nil, err 18 } 19 defer rows.Close() 20 21 for rows.Next() { 22 var repo Repo 23 var createdAt string 24 if err := rows.Scan(&repo.Did, &repo.Name, &repo.Knot, &createdAt); err != nil { 25 return nil, err 26 } 27 createdAtTime, _ := time.Parse(time.RFC3339, createdAt) 28 repo.Created = &createdAtTime 29 repos = append(repos, repo) 30 } 31 32 if err := rows.Err(); err != nil { 33 return nil, err 34 } 35 36 return repos, nil 37} 38 39func (d *DB) GetRepo(did, name string) (*Repo, error) { 40 var repo Repo 41 42 row := d.db.QueryRow(`select did, name, knot, created from repos where did = ? and name = ?`, did, name) 43 44 var createdAt string 45 if err := row.Scan(&repo.Did, &repo.Name, &repo.Knot, &createdAt); err != nil { 46 return nil, err 47 } 48 createdAtTime, _ := time.Parse(time.RFC3339, createdAt) 49 repo.Created = &createdAtTime 50 51 return &repo, nil 52} 53 54func (d *DB) AddRepo(repo *Repo) error { 55 _, err := d.db.Exec(`insert into repos (did, name, knot) values (?, ?, ?)`, repo.Did, repo.Name, repo.Knot) 56 return err 57} 58 59func (d *DB) RemoveRepo(did, name, knot string) error { 60 _, err := d.db.Exec(`delete from repos where did = ? and name = ? and knot = ?`, did, name, knot) 61 return err 62}