Remove a single follower from whoever they are following (if any)
(followSource followId)
| 146 | |
| 147 | // Remove a single follower from whoever they are following (if any) |
| 148 | func (f *FollowModule) stopFollowing(followSource followId) followId { |
| 149 | |
| 150 | wasFollowing := followId{} |
| 151 | |
| 152 | if followTarget, ok := f.followers[followSource]; ok { |
| 153 | delete(f.followers, followSource) |
| 154 | |
| 155 | wasFollowing = followTarget |
| 156 | |
| 157 | for idx, fId := range f.followed[followTarget] { |
| 158 | if fId == followSource { |
| 159 | f.followed[followTarget] = append(f.followed[followTarget][0:idx], f.followed[followTarget][idx+1:]...) |
| 160 | |
| 161 | if len(f.followed[followTarget]) == 0 { |
| 162 | delete(f.followed, followTarget) |
| 163 | } |
| 164 | |
| 165 | break |
| 166 | } |
| 167 | } |
| 168 | } |
| 169 | |
| 170 | // If there was a limit, delete it. |
| 171 | delete(f.followLimits, followSource) |
| 172 | |
| 173 | return wasFollowing |
| 174 | } |
| 175 | |
| 176 | // Remove all followers from a target |
| 177 | func (f *FollowModule) loseFollowers(followTarget followId) []followId { |
no test coverage detected