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, created) values (?, ?, ?, ?)`
7 _, err := d.db.Exec(query, did, name, key, time.Now())
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 (pk *PublicKey) JSON() map[string]interface{} {
25 return map[string]interface{}{
26 pk.DID: map[string]interface{}{
27 "key": pk.Key,
28 "name": pk.Name,
29 "created": pk.Created,
30 },
31 }
32}
33
34func (d *DB) GetAllPublicKeys() ([]PublicKey, error) {
35 var keys []PublicKey
36
37 rows, err := d.db.Query(`select key, name, did, created from public_keys`)
38 if err != nil {
39 return nil, err
40 }
41 defer rows.Close()
42
43 for rows.Next() {
44 var publicKey PublicKey
45 if err := rows.Scan(&publicKey.Key, &publicKey.Name, &publicKey.DID, &publicKey.Created); err != nil {
46 return nil, err
47 }
48 keys = append(keys, publicKey)
49 }
50
51 if err := rows.Err(); err != nil {
52 return nil, err
53 }
54
55 return keys, nil
56}
57
58func (d *DB) GetPublicKeys(did string) ([]PublicKey, error) {
59 var keys []PublicKey
60
61 rows, err := d.db.Query(`select did, key, name, created from public_keys where did = ?`, did)
62 if err != nil {
63 return nil, err
64 }
65 defer rows.Close()
66
67 for rows.Next() {
68 var publicKey PublicKey
69 if err := rows.Scan(&publicKey.DID, &publicKey.Key, &publicKey.Name, &publicKey.Created); err != nil {
70 return nil, err
71 }
72 keys = append(keys, publicKey)
73 }
74
75 if err := rows.Err(); err != nil {
76 return nil, err
77 }
78
79 return keys, nil
80}