projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
MastoAPI followers/following endpoints
[akkoma]
/
lib
/
pleroma
/
web
/
mastodon_api
/
mastodon_api_controller.ex
diff --git
a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
index 4fe66f8567acc85795a6cff6355d41b2c589036e..bfc8dcd0a3d1f9f562a18924605242d075cae2a1 100644
(file)
--- a/
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
+++ b/
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
@@
-22,6
+22,7
@@
defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
alias Pleroma.Web.MastodonAPI.MastodonView
alias Pleroma.Web.MastodonAPI.StatusView
alias Pleroma.Web.MastodonAPI.ReportView
alias Pleroma.Web.MastodonAPI.MastodonView
alias Pleroma.Web.MastodonAPI.StatusView
alias Pleroma.Web.MastodonAPI.ReportView
+ alias Pleroma.Web.MastodonAPI.MastodonAPI
alias Pleroma.Web.ActivityPub.ActivityPub
alias Pleroma.Web.ActivityPub.Utils
alias Pleroma.Web.ActivityPub.Visibility
alias Pleroma.Web.ActivityPub.ActivityPub
alias Pleroma.Web.ActivityPub.Utils
alias Pleroma.Web.ActivityPub.Visibility
@@
-190,6
+191,11
@@
defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
end
defp add_link_headers(conn, method, activities, param \\ nil, params \\ %{}) do
end
defp add_link_headers(conn, method, activities, param \\ nil, params \\ %{}) do
+ params =
+ conn.params
+ |> Map.drop(["since_id", "max_id"])
+ |> Map.merge(params)
+
last = List.last(activities)
first = List.first(activities)
last = List.last(activities)
first = List.first(activities)
@@
-647,9
+653,9
@@
defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
|> render("index.json", %{activities: activities, for: user, as: :activity})
end
|> render("index.json", %{activities: activities, for: user, as: :activity})
end
- def followers(%{assigns: %{user: for_user}} = conn, %{"id" => id}) do
+ def followers(%{assigns: %{user: for_user}} = conn, %{"id" => id}
= params
) do
with %User{} = user <- Repo.get(User, id),
with %User{} = user <- Repo.get(User, id),
-
{:ok, followers} <- User.get_followers(user
) do
+
followers <- MastodonAPI.get_followers(user, params
) do
followers =
cond do
for_user && user.id == for_user.id -> followers
followers =
cond do
for_user && user.id == for_user.id -> followers
@@
-658,14
+664,15
@@
defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
end
conn
end
conn
+ |> add_link_headers(:followers, followers, user)
|> put_view(AccountView)
|> render("accounts.json", %{users: followers, as: :user})
end
end
|> put_view(AccountView)
|> render("accounts.json", %{users: followers, as: :user})
end
end
- def following(%{assigns: %{user: for_user}} = conn, %{"id" => id}) do
+ def following(%{assigns: %{user: for_user}} = conn, %{"id" => id}
= params
) do
with %User{} = user <- Repo.get(User, id),
with %User{} = user <- Repo.get(User, id),
-
{:ok, followers} <- User.get_friends(user
) do
+
followers <- MastodonAPI.get_friends(user, params
) do
followers =
cond do
for_user && user.id == for_user.id -> followers
followers =
cond do
for_user && user.id == for_user.id -> followers
@@
-674,6
+681,7
@@
defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
end
conn
end
conn
+ |> add_link_headers(:following, followers, user)
|> put_view(AccountView)
|> render("accounts.json", %{users: followers, as: :user})
end
|> put_view(AccountView)
|> render("accounts.json", %{users: followers, as: :user})
end
@@
-1447,7
+1455,6
@@
defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
url,
[],
adapter: [
url,
[],
adapter: [
- timeout: timeout,
recv_timeout: timeout,
pool: :default
]
recv_timeout: timeout,
pool: :default
]