Merge branch 'hotfix/http-date-header' into 'develop'
[akkoma] / lib / pleroma / web / activity_pub / views / user_view.ex
index dd1ab3d2b75bbc66fed1ab20fadb3aa6d20782b6..415cbd47a5ef98713034623b5ae7c4d5231b859c 100644 (file)
@@ -104,6 +104,7 @@ defmodule Pleroma.Web.ActivityPub.UserView do
     query = User.get_friends_query(user)
     query = from(user in query, select: [:ap_id])
     following = Repo.all(query)
+
     total =
       if !user.info.hide_follows do
         length(following)
@@ -119,6 +120,7 @@ defmodule Pleroma.Web.ActivityPub.UserView do
     query = User.get_friends_query(user)
     query = from(user in query, select: [:ap_id])
     following = Repo.all(query)
+
     total =
       if !user.info.hide_follows do
         length(following)
@@ -139,6 +141,7 @@ defmodule Pleroma.Web.ActivityPub.UserView do
     query = User.get_followers_query(user)
     query = from(user in query, select: [:ap_id])
     followers = Repo.all(query)
+
     total =
       if !user.info.hide_followers do
         length(followers)
@@ -154,6 +157,7 @@ defmodule Pleroma.Web.ActivityPub.UserView do
     query = User.get_followers_query(user)
     query = from(user in query, select: [:ap_id])
     followers = Repo.all(query)
+
     total =
       if !user.info.hide_followers do
         length(followers)
@@ -165,7 +169,8 @@ defmodule Pleroma.Web.ActivityPub.UserView do
       "id" => "#{user.ap_id}/followers",
       "type" => "OrderedCollection",
       "totalItems" => total,
-      "first" => collection(followers, "#{user.ap_id}/followers", 1, !user.info.hide_followers, total)
+      "first" =>
+        collection(followers, "#{user.ap_id}/followers", 1, !user.info.hide_followers, total)
     }
     |> Map.merge(Utils.make_json_ld_header())
   end
@@ -183,14 +188,24 @@ defmodule Pleroma.Web.ActivityPub.UserView do
       end
 
     activities = ActivityPub.fetch_user_activities(user, nil, params)
-    min_id = Enum.at(Enum.reverse(activities), 0).id
-    max_id = Enum.at(activities, 0).id
 
-    collection =
-      Enum.map(activities, fn act ->
-        {:ok, data} = Transmogrifier.prepare_outgoing(act.data)
-        data
-      end)
+    {max_id, min_id, collection} =
+      if length(activities) > 0 do
+        {
+          Enum.at(Enum.reverse(activities), 0).id,
+          Enum.at(activities, 0).id,
+          Enum.map(activities, fn act ->
+            {:ok, data} = Transmogrifier.prepare_outgoing(act.data)
+            data
+          end)
+        }
+      else
+        {
+          0,
+          0,
+          []
+        }
+      end
 
     iri = "#{user.ap_id}/outbox"