Merge branch 'fix/pagination-regression' into 'develop'

Do not try to guess which pagination we need by the existence of an :offset param.

Closes #2399

See merge request pleroma/pleroma!3230
This commit is contained in:
lain 2021-01-05 12:40:45 +00:00
commit 20a269ed69
3 changed files with 18 additions and 6 deletions

View file

@ -608,11 +608,7 @@ def fetch_user_activities(user, reading_user, params \\ %{}) do
|> Map.put(:muting_user, reading_user)
end
pagination_type =
cond do
!Map.has_key?(params, :offset) -> :keyset
true -> :offset
end
pagination_type = Map.get(params, :pagination_type) || :keyset
%{
godmode: params[:godmode],

View file

@ -110,7 +110,8 @@ def list_user_statuses(%{assigns: %{user: admin}} = conn, %{"nickname" => nickna
limit: page_size,
offset: (page - 1) * page_size,
godmode: godmode,
exclude_reblogs: not with_reblogs
exclude_reblogs: not with_reblogs,
pagination_type: :offset
})
conn

View file

@ -469,6 +469,21 @@ test "muted reactions", %{user: user, conn: conn} do
}
] = result
end
test "paginates a user's statuses", %{user: user, conn: conn} do
{:ok, post_1} = CommonAPI.post(user, %{status: "first post"})
{:ok, post_2} = CommonAPI.post(user, %{status: "second post"})
response_1 = get(conn, "/api/v1/accounts/#{user.id}/statuses?limit=1")
assert [res] = json_response(response_1, 200)
assert res["id"] == post_2.id
response_2 = get(conn, "/api/v1/accounts/#{user.id}/statuses?limit=1&max_id=#{res["id"]}")
assert [res] = json_response(response_2, 200)
assert res["id"] == post_1.id
refute response_1 == response_2
end
end
defp local_and_remote_activities(%{local: local, remote: remote}) do