Fix pagination
authorEgor Kislitsyn <egor@kislitsyn.com>
Fri, 5 Jun 2020 19:18:29 +0000 (23:18 +0400)
committerEgor Kislitsyn <egor@kislitsyn.com>
Fri, 5 Jun 2020 19:18:29 +0000 (23:18 +0400)
lib/pleroma/pagination.ex
lib/pleroma/web/activity_pub/activity_pub_controller.ex

index 0ccc7b1f2ad258dd0a53f97cbdda50810d9849c7..1b99e44f9304210b811ecd9668097847be2c395e 100644 (file)
@@ -16,6 +16,9 @@ defmodule Pleroma.Pagination do
 
   @default_limit 20
   @max_limit 40
+  @page_keys ["max_id", "min_id", "limit", "since_id", "order"]
+
+  def page_keys, do: @page_keys
 
   @spec fetch_paginated(Ecto.Query.t(), map(), type(), atom() | nil) :: [Ecto.Schema.t()]
   def fetch_paginated(query, params, type \\ :keyset, table_binding \\ nil)
index 5b84413848ce5c39746bf153a7481d9473efcc4e..f0b5c6e935eca254b6238f3d8fb44be2bd303ac2 100644 (file)
@@ -238,6 +238,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubController do
         params
         |> Map.drop(["nickname", "page"])
         |> Map.put("include_poll_votes", true)
+        |> Map.new(fn {k, v} -> {String.to_existing_atom(k), v} end)
 
       activities = ActivityPub.fetch_user_activities(user, for_user, params)
 
@@ -354,6 +355,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubController do
       |> Map.drop(["nickname", "page"])
       |> Map.put("blocking_user", user)
       |> Map.put("user", user)
+      |> Map.new(fn {k, v} -> {String.to_existing_atom(k), v} end)
 
     activities =
       [user.ap_id | User.following(user)]