forked from AkkomaGang/akkoma
Merge branch 'following-you-in-user-view' into 'develop'
TwitterAPI user view: add follows_you. See merge request pleroma/pleroma!11
This commit is contained in:
commit
77e272df2d
2 changed files with 41 additions and 8 deletions
|
@ -16,15 +16,14 @@ defp image_url(_), do: nil
|
|||
|
||||
def render("user.json", %{user: user = %User{}} = assigns) do
|
||||
image = User.avatar_url(user)
|
||||
following = if assigns[:for] do
|
||||
User.following?(assigns[:for], user)
|
||||
else
|
||||
false
|
||||
end
|
||||
statusnet_blocking = if assigns[:for] do
|
||||
{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
|
||||
{false, false, false}
|
||||
end
|
||||
|
||||
user_info = User.get_cached_user_info(user)
|
||||
|
@ -35,6 +34,7 @@ def render("user.json", %{user: user = %User{}} = assigns) 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,
|
||||
|
|
|
@ -50,6 +50,7 @@ test "A user" 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 @@ test "A user for a given other follower", %{user: user} 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 @@ test "A user for a given other follower", %{user: user} 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 @@ test "A blocked user for the blocker", %{user: user} 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,
|
||||
|
|
Loading…
Reference in a new issue