this repo has no description
1package db
2
3import "time"
4
5func (d *DB) AddPublicKey(did, name, key string) error {
6 query := `insert into public_keys (did, name, key) values (?, ?, ?)`
7 _, err := d.db.Exec(query, did, name, key)
8 return err
9}
10
11func (d *DB) RemovePublicKey(did string) error {
12 query := `delete from public_keys where did = ?`
13 _, err := d.db.Exec(query, did)
14 return err
15}
16
17type PublicKey struct {
18 Key string
19 Name string
20 DID string
21 Created time.Time
22}
23
24func (d *DB) GetAllPublicKeys() ([]PublicKey, error) {
25 var keys []PublicKey
26
27 rows, err := d.db.Query(`select key, name, did, created from public_keys`)
28 if err != nil {
29 return nil, err
30 }
31 defer rows.Close()
32
33 for rows.Next() {
34 var publicKey PublicKey
35 var createdAt *int64
36 if err := rows.Scan(&publicKey.Key, &publicKey.Name, &publicKey.DID, &createdAt); err != nil {
37 return nil, err
38 }
39 publicKey.Created = time.Unix(*createdAt, 0)
40 keys = append(keys, publicKey)
41 }
42
43 if err := rows.Err(); err != nil {
44 return nil, err
45 }
46
47 return keys, nil
48}
49
50func (d *DB) GetPublicKeys(did string) ([]PublicKey, error) {
51 var keys []PublicKey
52
53 rows, err := d.db.Query(`select did, key, name, created from public_keys where did = ?`, did)
54 if err != nil {
55 return nil, err
56 }
57 defer rows.Close()
58
59 for rows.Next() {
60 var publicKey PublicKey
61 var createdAt *int64
62 if err := rows.Scan(&publicKey.DID, &publicKey.Key, &publicKey.Name, &createdAt); err != nil {
63 return nil, err
64 }
65 publicKey.Created = time.Unix(*createdAt, 0)
66 keys = append(keys, publicKey)
67 }
68
69 if err := rows.Err(); err != nil {
70 return nil, err
71 }
72
73 return keys, nil
74}