forked from tangled.org/core
Monorepo for Tangled

appview: add utilities to delete records by rkey

did+rkey can uniquely identify a row for any data record.

Changed files
+24 -4
appview
+6
appview/db/follow.go
··· 47 47 return err 48 48 } 49 49 50 + // Remove a follow 51 + func DeleteFollowByRkey(e Execer, userDid, rkey string) error { 52 + _, err := e.Exec(`delete from follows where user_did = ? and rkey = ?`, userDid, rkey) 53 + return err 54 + } 55 + 50 56 func GetFollowerFollowing(e Execer, did string) (int, int, error) { 51 57 followers, following := 0, 0 52 58 err := e.QueryRow(
+9 -1
appview/db/pubkeys.go
··· 13 13 return err 14 14 } 15 15 16 - func RemovePublicKey(e Execer, did, name, key string) error { 16 + func DeletePublicKey(e Execer, did, name, key string) error { 17 17 _, err := e.Exec(` 18 18 delete from public_keys 19 19 where did = ? and name = ? and key = ?`, 20 20 did, name, key) 21 + return err 22 + } 23 + 24 + func DeletePublicKeyByRkey(e Execer, did, rkey string) error { 25 + _, err := e.Exec(` 26 + delete or ignore from public_keys 27 + where did = ? and name = ? and rkey = ?`, 28 + did, rkey) 21 29 return err 22 30 } 23 31
+6
appview/db/star.go
··· 69 69 return err 70 70 } 71 71 72 + // Remove a star 73 + func DeleteStarByRkey(e Execer, starredByDid string, rkey string) error { 74 + _, err := e.Exec(`delete or ignore from stars where starred_by_did = ? and rkey = ?`, starredByDid, rkey) 75 + return err 76 + } 77 + 72 78 func GetStarCount(e Execer, repoAt syntax.ATURI) (int, error) { 73 79 stars := 0 74 80 err := e.QueryRow(
+1 -1
appview/settings/settings.go
··· 422 422 423 423 client, _ := s.Auth.AuthorizedClient(r) 424 424 425 - if err := db.RemovePublicKey(s.Db, did, name, key); err != nil { 425 + if err := db.DeletePublicKey(s.Db, did, name, key); err != nil { 426 426 log.Printf("removing public key: %s", err) 427 427 s.Pages.Notice(w, "settings-keys", "Failed to remove public key.") 428 428 return
+1 -1
appview/state/follow.go
··· 86 86 return 87 87 } 88 88 89 - err = db.DeleteFollow(s.db, currentUser.Did, subjectIdent.DID.String()) 89 + err = db.DeleteFollowByRkey(s.db, currentUser.Did, follow.Rkey) 90 90 if err != nil { 91 91 log.Println("failed to delete follow from DB") 92 92 // this is not an issue, the firehose event might have already done this
+1 -1
appview/state/star.go
··· 91 91 return 92 92 } 93 93 94 - err = db.DeleteStar(s.db, currentUser.Did, subjectUri) 94 + err = db.DeleteStarByRkey(s.db, currentUser.Did, star.Rkey) 95 95 if err != nil { 96 96 log.Println("failed to delete star from DB") 97 97 // this is not an issue, the firehose event might have already done this