Commit f7fc048a authored by eal's avatar eal
Browse files

TwitterAPI user view: add follows_you.

parent 8bbbfd72
Pipeline #94 passed with stage
in 1 minute and 49 seconds
......@@ -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)
{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 @@ 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,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment