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(did string, 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: did, 24 } 25 pk.Key = record["key"] 26 pk.Created = record["created"] 27 28 return d.AddPublicKey(pk) 29} 30 31func (d *DB) AddPublicKey(pk PublicKey) error { 32 if pk.Created == "" { 33 pk.Created = time.Now().Format("2006-01-02 15:04:05.99999999 -0700 MST m=-0000.000000000") 34 } 35 36 query := `insert into public_keys (did, key, created) values (?, ?, ?)` 37 _, err := d.db.Exec(query, pk.Did, pk.Key, pk.Created) 38 return err 39} 40 41func (d *DB) RemovePublicKey(did string) error { 42 query := `delete from public_keys where did = ?` 43 _, err := d.db.Exec(query, did) 44 return err 45} 46 47func (pk *PublicKey) JSON() map[string]interface{} { 48 return map[string]interface{}{ 49 pk.Did: map[string]interface{}{ 50 "key": pk.Key, 51 "created": pk.Created, 52 }, 53 } 54} 55 56func (d *DB) GetAllPublicKeys() ([]PublicKey, error) { 57 var keys []PublicKey 58 59 rows, err := d.db.Query(`select key, did, created from public_keys`) 60 if err != nil { 61 return nil, err 62 } 63 defer rows.Close() 64 65 for rows.Next() { 66 var publicKey PublicKey 67 if err := rows.Scan(&publicKey.Key, &publicKey.Did, &publicKey.Created); err != nil { 68 return nil, err 69 } 70 keys = append(keys, publicKey) 71 } 72 73 if err := rows.Err(); err != nil { 74 return nil, err 75 } 76 77 return keys, nil 78} 79 80func (d *DB) GetPublicKeys(did string) ([]PublicKey, error) { 81 var keys []PublicKey 82 83 rows, err := d.db.Query(`select did, key, created from public_keys where did = ?`, did) 84 if err != nil { 85 return nil, err 86 } 87 defer rows.Close() 88 89 for rows.Next() { 90 var publicKey PublicKey 91 if err := rows.Scan(&publicKey.Did, &publicKey.Key, &publicKey.Created); err != nil { 92 return nil, err 93 } 94 keys = append(keys, publicKey) 95 } 96 97 if err := rows.Err(); err != nil { 98 return nil, err 99 } 100 101 return keys, nil 102}