diff options
author | kaniini <nenolod@gmail.com> | 2019-02-18 03:59:46 +0000 |
---|---|---|
committer | kaniini <nenolod@gmail.com> | 2019-02-18 03:59:46 +0000 |
commit | 3f38a055715a8140524f4f55073d5b936d076fb4 (patch) | |
tree | 9e0e2f7109d6b5a14baf0609e1dededd2a4a6b04 | |
parent | 28a249bef23ffc13fb5e00acac150675001eb959 (diff) | |
parent | 38e15930cb7e8aec4742eb85da26955b4c08e8ce (diff) | |
download | pleroma-3f38a055715a8140524f4f55073d5b936d076fb4.tar.gz |
Merge branch 'csv-export' into 'develop'
Add option to return all friends in twitter api.
Closes #602
See merge request pleroma/pleroma!833
-rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api_controller.ex | 3 | ||||
-rw-r--r-- | test/web/twitter_api/twitter_api_controller_test.exs | 10 |
2 files changed, 12 insertions, 1 deletions
diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex index c2f0dc2a9..a8ef0a8ca 100644 --- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex +++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex @@ -524,6 +524,9 @@ defmodule Pleroma.Web.TwitterAPI.Controller do def friends(%{assigns: %{user: for_user}} = conn, params) do {:ok, page} = Ecto.Type.cast(:integer, params["page"] || 1) + {:ok, export} = Ecto.Type.cast(:boolean, params["all"] || false) + + page = if export, do: nil, else: page with {:ok, user} <- TwitterAPI.get_user(conn.assigns[:user], params), {:ok, friends} <- User.get_friends(user, page) do diff --git a/test/web/twitter_api/twitter_api_controller_test.exs b/test/web/twitter_api/twitter_api_controller_test.exs index acb03b146..f7e40e0d3 100644 --- a/test/web/twitter_api/twitter_api_controller_test.exs +++ b/test/web/twitter_api/twitter_api_controller_test.exs @@ -1218,7 +1218,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do assert Enum.sort(expected) == Enum.sort(result) end - test "it returns 20 friends per page", %{conn: conn} do + test "it returns 20 friends per page, except if 'export' is set to true", %{conn: conn} do user = insert(:user) followeds = insert_list(21, :user) @@ -1242,6 +1242,14 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do result = json_response(res_conn, 200) assert length(result) == 1 + + res_conn = + conn + |> assign(:user, user) + |> get("/api/statuses/friends", %{all: true}) + + result = json_response(res_conn, 200) + assert length(result) == 21 end test "it returns a given user's friends with user_id", %{conn: conn} do |