pagination: limit the number of elements returned at one time to 40

This commit is contained in:
rinpatch 2020-02-28 17:29:53 +03:00
parent 19e559fe51
commit df2173343a

View file

@ -13,6 +13,7 @@ defmodule Pleroma.Pagination do
alias Pleroma.Repo alias Pleroma.Repo
@default_limit 20 @default_limit 20
@max_limit 40
@page_keys ["max_id", "min_id", "limit", "since_id", "order"] @page_keys ["max_id", "min_id", "limit", "since_id", "order"]
def page_keys, do: @page_keys def page_keys, do: @page_keys
@ -130,7 +131,11 @@ defp restrict(query, :offset, %{offset: offset}, _table_binding) do
end end
defp restrict(query, :limit, options, _table_binding) do defp restrict(query, :limit, options, _table_binding) do
limit = Map.get(options, :limit, @default_limit) limit =
case Map.get(options, :limit, @default_limit) do
limit when limit < @max_limit -> limit
_ -> @max_limit
end
query query
|> limit(^limit) |> limit(^limit)