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