TwitterAPI user view: add follows_you.

This commit is contained in:
eal 2017-11-08 19:13:03 +02:00
parent 8bbbfd72aa
commit f7fc048aeb
2 changed files with 41 additions and 8 deletions

View File

@ -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,

View File

@ -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,