forked from AkkomaGang/akkoma
TwitterAPI user view: add follows_you.
This commit is contained in:
parent
8bbbfd72aa
commit
f7fc048aeb
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
|
def render("user.json", %{user: user = %User{}} = assigns) do
|
||||||
image = User.avatar_url(user)
|
image = User.avatar_url(user)
|
||||||
following = if assigns[:for] do
|
{following, follows_you, statusnet_blocking} = if assigns[:for] do
|
||||||
User.following?(assigns[:for], user)
|
{
|
||||||
|
User.following?(assigns[:for], user),
|
||||||
|
User.following?(user, assigns[:for]),
|
||||||
|
User.blocks?(assigns[:for], user)
|
||||||
|
}
|
||||||
else
|
else
|
||||||
false
|
{false, false, false}
|
||||||
end
|
|
||||||
statusnet_blocking = if assigns[:for] do
|
|
||||||
User.blocks?(assigns[:for], user)
|
|
||||||
else
|
|
||||||
false
|
|
||||||
end
|
end
|
||||||
|
|
||||||
user_info = User.get_cached_user_info(user)
|
user_info = User.get_cached_user_info(user)
|
||||||
|
@ -35,6 +34,7 @@ def render("user.json", %{user: user = %User{}} = assigns) do
|
||||||
"favourites_count" => 0,
|
"favourites_count" => 0,
|
||||||
"followers_count" => user_info[:follower_count],
|
"followers_count" => user_info[:follower_count],
|
||||||
"following" => following,
|
"following" => following,
|
||||||
|
"follows_you" => follows_you,
|
||||||
"statusnet_blocking" => statusnet_blocking,
|
"statusnet_blocking" => statusnet_blocking,
|
||||||
"friends_count" => user_info[:following_count],
|
"friends_count" => user_info[:following_count],
|
||||||
"id" => user.id,
|
"id" => user.id,
|
||||||
|
|
|
@ -50,6 +50,7 @@ test "A user" do
|
||||||
"profile_image_url_profile_size" => image,
|
"profile_image_url_profile_size" => image,
|
||||||
"profile_image_url_original" => image,
|
"profile_image_url_original" => image,
|
||||||
"following" => false,
|
"following" => false,
|
||||||
|
"follows_you" => false,
|
||||||
"statusnet_blocking" => false,
|
"statusnet_blocking" => false,
|
||||||
"rights" => %{},
|
"rights" => %{},
|
||||||
"statusnet_profile_url" => user.ap_id,
|
"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_profile_size" => image,
|
||||||
"profile_image_url_original" => image,
|
"profile_image_url_original" => image,
|
||||||
"following" => true,
|
"following" => true,
|
||||||
|
"follows_you" => false,
|
||||||
"statusnet_blocking" => false,
|
"statusnet_blocking" => false,
|
||||||
"rights" => %{},
|
"rights" => %{},
|
||||||
"statusnet_profile_url" => user.ap_id,
|
"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})
|
assert represented == UserView.render("show.json", %{user: user, for: follower})
|
||||||
end
|
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
|
test "A blocked user for the blocker", %{user: user} do
|
||||||
user = insert(:user)
|
user = insert(:user)
|
||||||
blocker = 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_profile_size" => image,
|
||||||
"profile_image_url_original" => image,
|
"profile_image_url_original" => image,
|
||||||
"following" => false,
|
"following" => false,
|
||||||
|
"follows_you" => false,
|
||||||
"statusnet_blocking" => true,
|
"statusnet_blocking" => true,
|
||||||
"rights" => %{},
|
"rights" => %{},
|
||||||
"statusnet_profile_url" => user.ap_id,
|
"statusnet_profile_url" => user.ap_id,
|
||||||
|
|
Loading…
Reference in a new issue