forked from tangled.org/core
Monorepo for Tangled
at master 959 B view raw
1package db 2 3type Repo struct { 4 Knot string 5 Owner string 6 Name string 7} 8 9func (d *DB) AddRepo(knot, owner, name string) error { 10 _, err := d.Exec(`insert or ignore into repos (knot, owner, name) values (?, ?, ?)`, knot, owner, name) 11 return err 12} 13 14func (d *DB) Knots() ([]string, error) { 15 rows, err := d.Query(`select knot from repos`) 16 if err != nil { 17 return nil, err 18 } 19 defer rows.Close() 20 21 var knots []string 22 for rows.Next() { 23 var knot string 24 if err := rows.Scan(&knot); err != nil { 25 return nil, err 26 } 27 knots = append(knots, knot) 28 } 29 30 if err = rows.Err(); err != nil { 31 return nil, err 32 } 33 34 return knots, nil 35} 36 37func (d *DB) GetRepo(knot, owner, name string) (*Repo, error) { 38 var repo Repo 39 40 query := "select knot, owner, name from repos where knot = ? and owner = ? and name = ?" 41 err := d.DB.QueryRow(query, knot, owner, name). 42 Scan(&repo.Knot, &repo.Owner, &repo.Name) 43 44 if err != nil { 45 return nil, err 46 } 47 48 return &repo, nil 49}