Monorepo for Tangled tangled.org
6

Configure Feed

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

at icy/ytnwlw 1.3 kB View raw
1package db 2 3import ( 4 "github.com/bluesky-social/indigo/atproto/syntax" 5) 6 7type SpindleMember struct { 8 Id int 9 Did syntax.DID // owner of the record 10 Rkey string // rkey of the record 11 Instance string 12 Subject syntax.DID // the member being added 13} 14 15func AddSpindleMember(q DBTX, member SpindleMember) error { 16 _, err := q.Exec( 17 `insert or ignore into spindle_members (did, rkey, instance, subject) values (?, ?, ?, ?)`, 18 member.Did, 19 member.Rkey, 20 member.Instance, 21 member.Subject, 22 ) 23 return err 24} 25 26func RemoveSpindleMember(q DBTX, ownerDid, rkey string) error { 27 _, err := q.Exec( 28 "delete from spindle_members where did = ? and rkey = ?", 29 ownerDid, 30 rkey, 31 ) 32 return err 33} 34 35func CountSpindleMembersBySubject(q DBTX, subject string) (int, error) { 36 var count int 37 err := q.QueryRow( 38 `select count(*) from spindle_members where subject = ?`, 39 subject, 40 ).Scan(&count) 41 return count, err 42} 43 44func GetSpindleMember(q DBTX, did, rkey string) (*SpindleMember, error) { 45 query := 46 `select id, did, rkey, instance, subject 47 from spindle_members 48 where did = ? and rkey = ?` 49 50 var member SpindleMember 51 err := q.QueryRow(query, did, rkey).Scan( 52 &member.Id, 53 &member.Did, 54 &member.Rkey, 55 &member.Instance, 56 &member.Subject, 57 ) 58 if err != nil { 59 return nil, err 60 } 61 62 return &member, nil 63}