bump version
[akkoma] / lib / pleroma / collections / fetcher.ex
index 205c62b4eec89fb2686b7d4a03e92929759019e8..0c81f0b56cbb3531d48be834747a15b0be66a9a1 100644 (file)
@@ -9,17 +9,27 @@ defmodule Akkoma.Collections.Fetcher do
   """
   alias Pleroma.Object.Fetcher
   alias Pleroma.Config
+  require Logger
 
   def fetch_collection_by_ap_id(ap_id) when is_binary(ap_id) do
     fetch_collection(ap_id)
   end
 
-  defp fetch_collection(ap_id) do
+  def fetch_collection(ap_id) when is_binary(ap_id) do
     with {:ok, page} <- Fetcher.fetch_and_contain_remote_object_from_id(ap_id) do
       {:ok, objects_from_collection(page)}
+    else
+      e ->
+        Logger.error("Could not fetch collection #{ap_id} - #{inspect(e)}")
+        e
     end
   end
 
+  def fetch_collection(%{"type" => type} = page)
+      when type in ["Collection", "OrderedCollection"] do
+    {:ok, objects_from_collection(page)}
+  end
+
   defp items_in_page(%{"type" => type, "orderedItems" => items})
        when is_list(items) and type in ["OrderedCollection", "OrderedCollectionPage"],
        do: items