this repo has no description
1package db
2
3import "database/sql"
4
5type Repo struct {
6 Did string
7 Name string
8 Knot string
9 Created *int64
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 *int64
24 if err := rows.Scan(&repo.Did, &repo.Name, &repo.Knot, &createdAt); err != nil {
25 return nil, err
26 }
27 repo.Created = createdAt
28 repos = append(repos, repo)
29 }
30
31 if err := rows.Err(); err != nil {
32 return nil, err
33 }
34
35 return repos, nil
36}
37
38func (d *DB) GetRepo(did, name string) (*Repo, error) {
39 var repo Repo
40
41 row := d.Db.QueryRow(`select did, name, knot, created from repos where did = ? and name = ?`, did, name)
42 var createdAt *int64
43 if err := row.Scan(&repo.Did, &repo.Name, &repo.Knot, &createdAt); err != nil {
44 return nil, err
45 }
46 repo.Created = createdAt
47
48 return &repo, nil
49}
50
51func (d *DB) AddRepo(repo *Repo) error {
52 _, err := d.Db.Exec(`insert into repos (did, name, knot) values (?, ?, ?)`, repo.Did, repo.Name, repo.Knot)
53 return err
54}
55
56func (d *DB) AddRepoTx(tx *sql.Tx, repo *Repo) error {
57 _, err := tx.Exec(`insert into repos (did, name, knot) values (?, ?, ?)`, repo.Did, repo.Name, repo.Knot)
58 return err
59}
60
61func (d *DB) RemoveRepo(did, name, knot string) error {
62 _, err := d.Db.Exec(`delete from repos where did = ? and name = ? and knot = ?`, did, name, knot)
63 return err
64}