aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlambda <pleromagit@rogerbraun.net>2017-11-08 17:57:13 +0000
committerlambda <pleromagit@rogerbraun.net>2017-11-08 17:57:13 +0000
commit77e272df2de41a79bdefcf29035c9d43b59000a5 (patch)
treed1e5471e194306f7564ec722bbb43707fe9794cc
parentd2430d50070c290552fdeab468f2c537d7438c97 (diff)
parentf7fc048aeb42ffbfce9f278b362c3d4766a4e9a2 (diff)
downloadpleroma-77e272df2de41a79bdefcf29035c9d43b59000a5.tar.gz
Merge branch 'following-you-in-user-view' into 'develop'
TwitterAPI user view: add follows_you. See merge request pleroma/pleroma!11
-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,