···
func GetFollowerFollowingCount(e Execer, did string) (int, int, error) {
followers, following := 0, 0
COUNT(CASE WHEN subject_did = ? THEN 1 END) AS followers,
COUNT(CASE WHEN user_did = ? THEN 1 END) AS following
FROM follows;`, did, did).Scan(&followers, &following)
···
return followers, following, nil
69
+
func GetFollowers(e Execer, did string) ([]Follow, error) {
70
+
var followers []Follow
71
+
rows, err := e.Query(`
72
+
select user_did, subject_did, followed_at, rkey from follows where subject_did = ?
79
+
var followedAt string
89
+
followedAtTime, err := time.Parse(time.RFC3339, followedAt)
91
+
log.Println("unable to determine followed at time")
92
+
follow.FollowedAt = time.Now()
94
+
follow.FollowedAt = followedAtTime
96
+
followers = append(followers, follow)
98
+
return followers, nil
101
+
func GetFollowing(e Execer, did string) ([]Follow, error) {
102
+
var following []Follow
103
+
rows, err := e.Query(`
104
+
select user_did, subject_did, followed_at, rkey from follows where user_did = ?
111
+
var followedAt string
114
+
&follow.SubjectDid,
121
+
followedAtTime, err := time.Parse(time.RFC3339, followedAt)
123
+
log.Println("unable to determine followed at time")
124
+
follow.FollowedAt = time.Now()
126
+
follow.FollowedAt = followedAtTime
128
+
following = append(following, follow)
130
+
return following, nil