Merge branch 'bugfix/repeated-follow-unfollow' into 'develop'

Add error messages for repeated follows and unfollows

See merge request !7
This commit is contained in:
lambadalambda 2017-04-17 05:46:59 -04:00
commit ac9817bdb0
4 changed files with 56 additions and 28 deletions

View file

@ -55,22 +55,31 @@ defmodule Pleroma.User do
def follow(%User{} = follower, %User{} = followed) do
ap_followers = User.ap_followers(followed)
following = [ap_followers | follower.following]
|> Enum.uniq
if following?(follower, followed) do
{ :error,
"Could not follow user: #{followed.nickname} is already on your list." }
else
following = [ap_followers | follower.following]
|> Enum.uniq
follower
|> follow_changeset(%{following: following})
|> Repo.update
follower
|> follow_changeset(%{following: following})
|> Repo.update
end
end
def unfollow(%User{} = follower, %User{} = followed) do
ap_followers = User.ap_followers(followed)
following = follower.following
|> List.delete(ap_followers)
if following?(follower, followed) do
following = follower.following
|> List.delete(ap_followers)
follower
|> follow_changeset(%{following: following})
|> Repo.update
follower
|> follow_changeset(%{following: following})
|> Repo.update
else
{ :error, "Not subscribed!" }
end
end
def following?(%User{} = follower, %User{} = followed) do