this repo has no description
1package db 2 3import ( 4 "time" 5 6 "github.com/sotangled/tangled/api/tangled" 7) 8 9type PublicKey struct { 10 Did string 11 tangled.PublicKey 12} 13 14func (d *DB) AddPublicKeyFromRecord(recordIface map[string]interface{}) error { 15 record := make(map[string]string) 16 for k, v := range recordIface { 17 if str, ok := v.(string); ok { 18 record[k] = str 19 } 20 } 21 22 pk := PublicKey{ 23 Did: record["did"], 24 } 25 pk.Name = record["name"] 26 pk.Key = record["key"] 27 pk.Created = record["created"] 28 29 return d.AddPublicKey(pk) 30} 31 32func (d *DB) AddPublicKey(pk PublicKey) error { 33 if pk.Created == "" { 34 pk.Created = time.Now().Format("2006-01-02 15:04:05.99999999 -0700 MST m=-0000.000000000") 35 } 36 37 query := `insert into public_keys (did, name, key, created) values (?, ?, ?, ?)` 38 _, err := d.db.Exec(query, pk.Did, pk.Name, pk.Key, pk.Created) 39 return err 40} 41 42func (d *DB) RemovePublicKey(did string) error { 43 query := `delete from public_keys where did = ?` 44 _, err := d.db.Exec(query, did) 45 return err 46} 47 48func (pk *PublicKey) JSON() map[string]interface{} { 49 return map[string]interface{}{ 50 pk.Did: map[string]interface{}{ 51 "key": pk.Key, 52 "name": pk.Name, 53 "created": pk.Created, 54 }, 55 } 56} 57 58func (d *DB) GetAllPublicKeys() ([]PublicKey, error) { 59 var keys []PublicKey 60 61 rows, err := d.db.Query(`select key, name, did, created from public_keys`) 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.Key, &publicKey.Name, &publicKey.Did, &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} 81 82func (d *DB) GetPublicKeys(did string) ([]PublicKey, error) { 83 var keys []PublicKey 84 85 rows, err := d.db.Query(`select did, key, name, created from public_keys where did = ?`, did) 86 if err != nil { 87 return nil, err 88 } 89 defer rows.Close() 90 91 for rows.Next() { 92 var publicKey PublicKey 93 if err := rows.Scan(&publicKey.Did, &publicKey.Key, &publicKey.Name, &publicKey.Created); err != nil { 94 return nil, err 95 } 96 keys = append(keys, publicKey) 97 } 98 99 if err := rows.Err(); err != nil { 100 return nil, err 101 } 102 103 return keys, nil 104}