Переглянути джерело

mastodon_api_controller.ex: Use min_id in link header instead of since_id

tags/v1.1.4
Haelwenn (lanodan) Monnier 5 роки тому
джерело
коміт
6b407872b4
Не вдалося знайти GPG ключ що відповідає даному підпису Ідентифікатор GPG ключа: D5B7A8E43C997DEE
2 змінених файлів з 16 додано та 11 видалено
  1. +13
    -8
      lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
  2. +3
    -3
      test/web/mastodon_api/mastodon_api_controller_test.exs

+ 13
- 8
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex Переглянути файл

@@ -199,15 +199,20 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
defp add_link_headers(conn, method, activities, param \\ nil, params \\ %{}) do
params =
conn.params
|> Map.drop(["since_id", "max_id"])
|> Map.drop(["since_id", "max_id", "min_id"])
|> Map.merge(params)

last = List.last(activities)
first = List.first(activities)

if last do
min = last.id
max = first.id
max_id = last.id

limit =
params
|> Map.get("limit", "20")
|> String.to_integer()

min_id = Enum.at(activities, limit * -1)

{next_url, prev_url} =
if param do
@@ -216,13 +221,13 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
Pleroma.Web.Endpoint,
method,
param,
Map.merge(params, %{max_id: min})
Map.merge(params, %{max_id: max_id})
),
mastodon_api_url(
Pleroma.Web.Endpoint,
method,
param,
Map.merge(params, %{since_id: max})
Map.merge(params, %{min_id: min_id})
)
}
else
@@ -230,12 +235,12 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
mastodon_api_url(
Pleroma.Web.Endpoint,
method,
Map.merge(params, %{max_id: min})
Map.merge(params, %{max_id: max_id})
),
mastodon_api_url(
Pleroma.Web.Endpoint,
method,
Map.merge(params, %{since_id: max})
Map.merge(params, %{min_id: min_id})
)
}
end


+ 3
- 3
test/web/mastodon_api/mastodon_api_controller_test.exs Переглянути файл

@@ -1371,7 +1371,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
assert id2 == follower2.id

assert [link_header] = get_resp_header(res_conn, "link")
assert link_header =~ ~r/since_id=#{follower2.id}/
assert link_header =~ ~r/min_id=#{follower2.id}/
assert link_header =~ ~r/max_id=#{follower2.id}/
end

@@ -1450,7 +1450,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
assert id2 == following2.id

assert [link_header] = get_resp_header(res_conn, "link")
assert link_header =~ ~r/since_id=#{following2.id}/
assert link_header =~ ~r/min_id=#{following2.id}/
assert link_header =~ ~r/max_id=#{following2.id}/
end

@@ -2261,7 +2261,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do

assert [link_header] = get_resp_header(conn, "link")
assert link_header =~ ~r/media_only=true/
assert link_header =~ ~r/since_id=#{notification2.id}/
assert link_header =~ ~r/min_id=#{notification2.id}/
assert link_header =~ ~r/max_id=#{notification1.id}/
end
end


Завантаження…
Відмінити
Зберегти