TwitterAPI user view: add blocks.
authoreal <eal@waifu.club>
Wed, 8 Nov 2017 11:02:00 +0000 (13:02 +0200)
committereal <eal@waifu.club>
Wed, 8 Nov 2017 11:02:00 +0000 (13:02 +0200)
lib/pleroma/web/twitter_api/views/user_view.ex
test/web/twitter_api/views/user_view_test.exs

index f72e951eb1dd276fe127fefe4b70521fdfaa6a96..d33c054f3ae60ba2c525ddeab548c2cabc5ea78b 100644 (file)
@@ -21,6 +21,11 @@ defmodule Pleroma.Web.TwitterAPI.UserView 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 @@ defmodule Pleroma.Web.TwitterAPI.UserView 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,
index 886af6b66cc72f06275e0cdc9dd06d623b80f373..a942729c63d99e014194b556f7a9a18fcdefd6d8 100644 (file)
@@ -50,6 +50,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest 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 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest 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 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest 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