Monorepo for Tangled
0

Configure Feed

Select the types of activity you want to include in your feed.

tangled-core / appview / db / pubkeys.go
2.4 kB 102 lines
1package db 2 3import ( 4 "time" 5 6 "tangled.org/core/appview/models" 7) 8 9func UpsertPublicKey(e Execer, pubKey models.PublicKey) error { 10 _, err := e.Exec( 11 `insert into public_keys (did, rkey, name, key, created) 12 values (?, ?, ?, ?, ?) 13 on conflict(did, rkey) do update set 14 name = excluded.name, 15 key = excluded.key, 16 created = excluded.created`, 17 pubKey.Did, 18 pubKey.Rkey, 19 pubKey.Name, 20 pubKey.Key, 21 pubKey.Created.Format(time.RFC3339), 22 ) 23 return err 24} 25 26func UpdatePublicKey(e Execer, did, name, key, rkey string) error { 27 _, err := e.Exec( 28 `update public_keys set name = ? where did = ? and key = ? and rkey = ?`, 29 name, did, key, rkey) 30 return err 31} 32 33// for public_keys with empty rkey 34func DeletePublicKeyLegacy(e Execer, did, name string) error { 35 _, err := e.Exec(` 36 delete from public_keys 37 where did = ? and name = ? and rkey = ''`, 38 did, name) 39 return err 40} 41 42func DeletePublicKeyByRkey(e Execer, did, rkey string) error { 43 _, err := e.Exec(` 44 delete from public_keys 45 where did = ? and rkey = ?`, 46 did, rkey) 47 return err 48} 49 50func GetAllPublicKeys(e Execer) ([]models.PublicKey, error) { 51 var keys []models.PublicKey 52 53 rows, err := e.Query(`select key, name, did, rkey, created from public_keys`) 54 if err != nil { 55 return nil, err 56 } 57 defer rows.Close() 58 59 for rows.Next() { 60 var publicKey models.PublicKey 61 var createdAt string 62 if err := rows.Scan(&publicKey.Key, &publicKey.Name, &publicKey.Did, &publicKey.Rkey, &createdAt); err != nil { 63 return nil, err 64 } 65 createdAtTime, _ := time.Parse(time.RFC3339, createdAt) 66 publicKey.Created = &createdAtTime 67 keys = append(keys, publicKey) 68 } 69 70 if err := rows.Err(); err != nil { 71 return nil, err 72 } 73 74 return keys, nil 75} 76 77func GetPublicKeysForDid(e Execer, did string) ([]models.PublicKey, error) { 78 var keys []models.PublicKey 79 80 rows, err := e.Query(`select did, key, name, rkey, created from public_keys where did = ?`, did) 81 if err != nil { 82 return nil, err 83 } 84 defer rows.Close() 85 86 for rows.Next() { 87 var publicKey models.PublicKey 88 var createdAt string 89 if err := rows.Scan(&publicKey.Did, &publicKey.Key, &publicKey.Name, &publicKey.Rkey, &createdAt); err != nil { 90 return nil, err 91 } 92 createdAtTime, _ := time.Parse(time.RFC3339, createdAt) 93 publicKey.Created = &createdAtTime 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}