From 4656cb9b996169714e6a25c6025e96df81a34b62 Mon Sep 17 00:00:00 2001 From: eal Date: Wed, 8 Nov 2017 13:02:00 +0200 Subject: [PATCH] TwitterAPI user view: add blocks. --- .../web/twitter_api/views/user_view.ex | 6 ++++ test/web/twitter_api/views/user_view_test.exs | 33 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/lib/pleroma/web/twitter_api/views/user_view.ex b/lib/pleroma/web/twitter_api/views/user_view.ex index f72e951eb..d33c054f3 100644 --- a/lib/pleroma/web/twitter_api/views/user_view.ex +++ b/lib/pleroma/web/twitter_api/views/user_view.ex @@ -21,6 +21,11 @@ def render("user.json", %{user: user = %User{}} = assigns) do else false end + statusnet_blocking = if assigns[:for] do + User.blocks?(assigns[:for], user) + else + false + end user_info = User.get_cached_user_info(user) @@ -30,6 +35,7 @@ def render("user.json", %{user: user = %User{}} = assigns) do "favourites_count" => 0, "followers_count" => user_info[:follower_count], "following" => following, + "statusnet_blocking" => statusnet_blocking, "friends_count" => user_info[:following_count], "id" => user.id, "name" => user.name, diff --git a/test/web/twitter_api/views/user_view_test.exs b/test/web/twitter_api/views/user_view_test.exs index 886af6b66..a942729c6 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 @@ test "A user" do "profile_image_url_profile_size" => image, "profile_image_url_original" => image, "following" => false, + "statusnet_blocking" => false, "rights" => %{}, "statusnet_profile_url" => user.ap_id, "cover_photo" => nil, @@ -78,6 +79,7 @@ test "A user for a given other follower", %{user: user} do "profile_image_url_profile_size" => image, "profile_image_url_original" => image, "following" => true, + "statusnet_blocking" => false, "rights" => %{}, "statusnet_profile_url" => user.ap_id, "cover_photo" => nil, @@ -86,4 +88,35 @@ test "A user for a given other follower", %{user: user} do assert represented == UserView.render("show.json", %{user: user, for: follower}) end + + test "A blocked user for the blocker", %{user: user} do + user = insert(:user) + blocker = insert(:user) + User.block(blocker, user) + image = "https://placehold.it/48x48" + represented = %{ + "id" => user.id, + "name" => user.name, + "screen_name" => user.nickname, + "description" => HtmlSanitizeEx.strip_tags(user.bio), + "created_at" => user.inserted_at |> Utils.format_naive_asctime, + "favourites_count" => 0, + "statuses_count" => 0, + "friends_count" => 0, + "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, + "statusnet_blocking" => true, + "rights" => %{}, + "statusnet_profile_url" => user.ap_id, + "cover_photo" => nil, + "background_image" => nil + } + + blocker = Repo.get(User, blocker.id) + assert represented == UserView.render("show.json", %{user: user, for: blocker}) + end end