X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Fmastodon_api%2Fmastodon_api_controller.ex;h=bfc8dcd0a3d1f9f562a18924605242d075cae2a1;hb=984b5f8adfd1e7b981a270193d1ebd76f468576c;hp=4fe66f8567acc85795a6cff6355d41b2c589036e;hpb=07f8c79a698e7ed139dec4adcefc0ae1ba680815;p=akkoma diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index 4fe66f856..bfc8dcd0a 100644 --- 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.MastodonAPI 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 + params = + conn.params + |> Map.drop(["since_id", "max_id"]) + |> Map.merge(params) + 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 - 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), - {: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 @@ -658,14 +664,15 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do end conn + |> add_link_headers(:followers, followers, user) |> 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), - {: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 @@ -674,6 +681,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do end conn + |> add_link_headers(:following, followers, user) |> put_view(AccountView) |> render("accounts.json", %{users: followers, as: :user}) end @@ -1447,7 +1455,6 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do url, [], adapter: [ - timeout: timeout, recv_timeout: timeout, pool: :default ]