Monorepo for Tangled
tangled.org
1package db
2
3func AddDid(q DBTX, did string) error {
4 _, err := q.Exec(`insert or ignore into known_dids (did) values (?)`, did)
5 return err
6}
7
8func IsDidKnown(q DBTX, did string) (bool, error) {
9 var exists bool
10 err := q.QueryRow(`select exists (select 1 from known_dids where did = ?)`, did).Scan(&exists)
11 return exists, err
12}
13
14func RemoveDid(q DBTX, did string) error {
15 _, err := q.Exec(`delete from known_dids where did = ?`, did)
16 return err
17}
18
19func (d *DB) GetAllDids() ([]string, error) {
20 var dids []string
21
22 rows, err := d.db.Query(`select did from known_dids`)
23 if err != nil {
24 return nil, err
25 }
26 defer rows.Close()
27
28 for rows.Next() {
29 var did string
30 if err := rows.Scan(&did); err != nil {
31 return nil, err
32 }
33 dids = append(dids, did)
34 }
35
36 if err := rows.Err(); err != nil {
37 return nil, err
38 }
39
40 return dids, nil
41}
42
43func (d *DB) HasKnownDids() bool {
44 var count int
45 err := d.db.QueryRow(`select count(*) from known_dids`).Scan(&count)
46 if err != nil {
47 return false
48 }
49 return count > 0
50}