forked from tangled.org/core
Monorepo for Tangled — https://tangled.org
1package db 2 3import ( 4 "log" 5 "time" 6) 7 8type Follow struct { 9 UserDid string 10 SubjectDid string 11 FollowedAt *time.Time 12 AtUri string 13} 14 15func (d *DB) AddFollow(userDid, subjectDid, atUri string) error { 16 query := `insert into follows (user_did, subject_did, at_uri) values (?, ?, ?)` 17 _, err := d.db.Exec(query, userDid, subjectDid, atUri) 18 return err 19} 20 21// Get a follow record 22func (d *DB) GetFollow(userDid, subjectDid string) (*Follow, error) { 23 query := `select user_did, subject_did, followed_at, at_uri from follows where user_did = ? and subject_did = ?` 24 row := d.db.QueryRow(query, userDid, subjectDid) 25 26 var follow Follow 27 var followedAt string 28 err := row.Scan(&follow.UserDid, &follow.SubjectDid, &followedAt, &follow.AtUri) 29 if err != nil { 30 return nil, err 31 } 32 33 followedAtTime, err := time.Parse(time.RFC3339, followedAt) 34 if err != nil { 35 log.Println("unable to determine followed at time") 36 follow.FollowedAt = nil 37 } else { 38 follow.FollowedAt = &followedAtTime 39 } 40 41 return &follow, nil 42} 43 44// Get a follow record 45func (d *DB) DeleteFollow(userDid, subjectDid string) error { 46 _, err := d.db.Exec(`delete from follows where user_did = ? and subject_did = ?`, userDid, subjectDid) 47 return err 48}