forked from tangled.org/core
Monorepo for Tangled — https://tangled.org
at master 2.0 kB view raw
1package db 2 3import ( 4 "tangled.org/core/appview/models" 5 "time" 6) 7 8func AddPublicKey(e Execer, did, name, key, rkey string) error { 9 _, err := e.Exec( 10 `insert or ignore into public_keys (did, name, key, rkey) 11 values (?, ?, ?, ?)`, 12 did, name, key, rkey) 13 return err 14} 15 16func DeletePublicKey(e Execer, did, name, key string) error { 17 _, err := e.Exec(` 18 delete from public_keys 19 where did = ? and name = ? and key = ?`, 20 did, name, key) 21 return err 22} 23 24func DeletePublicKeyByRkey(e Execer, did, rkey string) error { 25 _, err := e.Exec(` 26 delete from public_keys 27 where did = ? and rkey = ?`, 28 did, rkey) 29 return err 30} 31 32func GetAllPublicKeys(e Execer) ([]models.PublicKey, error) { 33 var keys []models.PublicKey 34 35 rows, err := e.Query(`select key, name, did, rkey, created from public_keys`) 36 if err != nil { 37 return nil, err 38 } 39 defer rows.Close() 40 41 for rows.Next() { 42 var publicKey models.PublicKey 43 var createdAt string 44 if err := rows.Scan(&publicKey.Key, &publicKey.Name, &publicKey.Did, &publicKey.Rkey, &createdAt); err != nil { 45 return nil, err 46 } 47 createdAtTime, _ := time.Parse(time.RFC3339, createdAt) 48 publicKey.Created = &createdAtTime 49 keys = append(keys, publicKey) 50 } 51 52 if err := rows.Err(); err != nil { 53 return nil, err 54 } 55 56 return keys, nil 57} 58 59func GetPublicKeysForDid(e Execer, did string) ([]models.PublicKey, error) { 60 var keys []models.PublicKey 61 62 rows, err := e.Query(`select did, key, name, rkey, created from public_keys where did = ?`, did) 63 if err != nil { 64 return nil, err 65 } 66 defer rows.Close() 67 68 for rows.Next() { 69 var publicKey models.PublicKey 70 var createdAt string 71 if err := rows.Scan(&publicKey.Did, &publicKey.Key, &publicKey.Name, &publicKey.Rkey, &createdAt); err != nil { 72 return nil, err 73 } 74 createdAtTime, _ := time.Parse(time.RFC3339, createdAt) 75 publicKey.Created = &createdAtTime 76 keys = append(keys, publicKey) 77 } 78 79 if err := rows.Err(); err != nil { 80 return nil, err 81 } 82 83 return keys, nil 84}