aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreal <eal@waifu.club>2017-11-08 19:13:03 +0200
committereal <eal@waifu.club>2017-11-08 19:13:03 +0200
commitf7fc048aeb42ffbfce9f278b362c3d4766a4e9a2 (patch)
tree5b80e6a521d438767b8e0492abe08cd62bbac7f2
parent8bbbfd72aad7eccf0914019affbaa060a41b96b2 (diff)
downloadpleroma-f7fc048aeb42ffbfce9f278b362c3d4766a4e9a2.tar.gz
TwitterAPI user view: add follows_you.
-rw-r--r--lib/pleroma/web/twitter_api/views/user_view.ex16
-rw-r--r--test/web/twitter_api/views/user_view_test.exs33
2 files changed, 41 insertions, 8 deletions
diff --git a/lib/pleroma/web/twitter_api/views/user_view.ex b/lib/pleroma/web/twitter_api/views/user_view.ex
index d33c054f3..6c5676c04 100644
--- a/lib/pleroma/web/twitter_api/views/user_view.ex
+++ b/lib/pleroma/web/twitter_api/views/user_view.ex
@@ -16,15 +16,14 @@ defmodule Pleroma.Web.TwitterAPI.UserView do
def render("user.json", %{user: user = %User{}} = assigns) do
image = User.avatar_url(user)
- following = if assigns[:for] do
- User.following?(assigns[:for], user)
+ {following, follows_you, statusnet_blocking} = if assigns[:for] do
+ {
+ User.following?(assigns[:for], user),
+ User.following?(user, assigns[:for]),
+ User.blocks?(assigns[:for], user)
+ }
else
- false
- end
- statusnet_blocking = if assigns[:for] do
- User.blocks?(assigns[:for], user)
- else
- false
+ {false, false, false}
end
user_info = User.get_cached_user_info(user)
@@ -35,6 +34,7 @@ defmodule Pleroma.Web.TwitterAPI.UserView do
"favourites_count" => 0,
"followers_count" => user_info[:follower_count],
"following" => following,
+ "follows_you" => follows_you,
"statusnet_blocking" => statusnet_blocking,
"friends_count" => user_info[:following_count],
"id" => user.id,
diff --git a/test/web/twitter_api/views/user_view_test.exs b/test/web/twitter_api/views/user_view_test.exs
index a942729c6..9f8e15574 100644
--- a/test/web/twitter_api/views/user_view_test.exs
+++ b/test/web/twitter_api/views/user_view_test.exs
@@ -50,6 +50,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do
"profile_image_url_profile_size" => image,
"profile_image_url_original" => image,
"following" => false,
+ "follows_you" => false,
"statusnet_blocking" => false,
"rights" => %{},
"statusnet_profile_url" => user.ap_id,
@@ -79,6 +80,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do
"profile_image_url_profile_size" => image,
"profile_image_url_original" => image,
"following" => true,
+ "follows_you" => false,
"statusnet_blocking" => false,
"rights" => %{},
"statusnet_profile_url" => user.ap_id,
@@ -89,6 +91,36 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do
assert represented == UserView.render("show.json", %{user: user, for: follower})
end
+ test "A user that follows you", %{user: user} do
+ {:ok, follower} = UserBuilder.insert(%{following: [User.ap_followers(user)]})
+ {:ok, user} = User.update_follower_count(user)
+ image = "https://placehold.it/48x48"
+ represented = %{
+ "id" => follower.id,
+ "name" => follower.name,
+ "screen_name" => follower.nickname,
+ "description" => HtmlSanitizeEx.strip_tags(follower.bio),
+ "created_at" => follower.inserted_at |> Utils.format_naive_asctime,
+ "favourites_count" => 0,
+ "statuses_count" => 0,
+ "friends_count" => 1,
+ "followers_count" => 0,
+ "profile_image_url" => image,
+ "profile_image_url_https" => image,
+ "profile_image_url_profile_size" => image,
+ "profile_image_url_original" => image,
+ "following" => false,
+ "follows_you" => true,
+ "statusnet_blocking" => false,
+ "rights" => %{},
+ "statusnet_profile_url" => follower.ap_id,
+ "cover_photo" => nil,
+ "background_image" => nil
+ }
+
+ assert represented == UserView.render("show.json", %{user: follower, for: user})
+ end
+
test "A blocked user for the blocker", %{user: user} do
user = insert(:user)
blocker = insert(:user)
@@ -109,6 +141,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do
"profile_image_url_profile_size" => image,
"profile_image_url_original" => image,
"following" => false,
+ "follows_you" => false,
"statusnet_blocking" => true,
"rights" => %{},
"statusnet_profile_url" => user.ap_id,