From: eal Date: Tue, 14 Nov 2017 14:04:58 +0000 (+0200) Subject: TwitterAPI: Add /friends/ids. X-Git-Url: https://git.squeep.com/?a=commitdiff_plain;h=3533bf7eacaceb493bd4bef4ae5625f7c99021b9;p=akkoma TwitterAPI: Add /friends/ids. --- diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 8fe1d8ec6..7a5c78867 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -189,6 +189,7 @@ defmodule Pleroma.Web.Router do get "/statuses/followers", TwitterAPI.Controller, :followers get "/statuses/friends", TwitterAPI.Controller, :friends + get "/friends/ids", TwitterAPI.Controller, :friends_ids get "/externalprofile/show", TwitterAPI.Controller, :external_profile end diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex index 125eb8a1e..887474a23 100644 --- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex +++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex @@ -265,6 +265,18 @@ defmodule Pleroma.Web.TwitterAPI.Controller do end end + def friends_ids(%{assigns: %{user: user}} = conn, _params) do + with {:ok, friends} <- User.get_friends(user) do + ids = friends + |> Enum.map(fn x -> x.id end) + |> Poison.encode! + json(conn, ids) + else + _e -> bad_request_reply(conn, "Can't get friends") + end + end + + def update_profile(%{assigns: %{user: user}} = conn, params) do params = if bio = params["description"] do Map.put(params, "bio", bio) diff --git a/test/web/twitter_api/twitter_api_controller_test.exs b/test/web/twitter_api/twitter_api_controller_test.exs index 6bdf29a13..d0c9a1b6d 100644 --- a/test/web/twitter_api/twitter_api_controller_test.exs +++ b/test/web/twitter_api/twitter_api_controller_test.exs @@ -494,6 +494,25 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do end end + describe "GET /friends/ids" do + test "it returns a user's friends", %{conn: conn} do + user = insert(:user) + followed_one = insert(:user) + followed_two = insert(:user) + not_followed = insert(:user) + + {:ok, user} = User.follow(user, followed_one) + {:ok, user} = User.follow(user, followed_two) + + conn = conn + |> assign(:user, user) + |> get("/api/friends/ids") + + expected = Poison.encode!([followed_one.id, followed_two.id]) + assert json_response(conn, 200) == expected + end + end + describe "POST /api/account/update_profile.json" do test "it updates a user's profile" do user = insert(:user)