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