Use cache for user info data.
[akkoma] / lib / pleroma / web / twitter_api / representers / user_representer.ex
index 2ee4ee25443a00bc2a9d9dd16b8c5d20f5f777e7..29c7451f461f5d47687ed05d17b1dfd5cd4ecab4 100644 (file)
@@ -4,17 +4,15 @@ defmodule Pleroma.Web.TwitterAPI.Representers.UserRepresenter do
   alias Pleroma.User
 
   def to_map(user, opts) do
-    image = case user.avatar do
-      %{"url" => [%{"href" => href} | _]} -> href
-      _ -> "https://placehold.it/48x48"
-    end
-
+    image = User.avatar_url(user)
     following = if opts[:for] do
       User.following?(opts[:for], user)
     else
       false
     end
 
+    user_info = User.get_cached_user_info(user)
+
     map = %{
       "id" => user.id,
       "name" => user.name,
@@ -23,9 +21,9 @@ defmodule Pleroma.Web.TwitterAPI.Representers.UserRepresenter do
       "following" => following,
       # Fake fields
       "favourites_count" => 0,
-      "statuses_count" => 0,
-      "friends_count" => 0,
-      "followers_count" => 0,
+      "statuses_count" => user_info[:note_count],
+      "friends_count" => user_info[:following_count],
+      "followers_count" => user_info[:follower_count],
       "profile_image_url" => image,
       "profile_image_url_https" => image,
       "profile_image_url_profile_size" => image,