logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 1cca544e206e8e7f38077fba6392c252803c13ec
parent: 1eb7a862d2fcace74a8cf8ea6154760f5509c094
Author: lambda <pleromagit@rogerbraun.net>
Date:   Tue, 14 Nov 2017 16:47:54 +0000

Merge branch 'twitterapi-bitlbee' into 'develop'

TwitterAPI: Add missing endpoints for bitlbee.

Closes #67

See merge request pleroma/pleroma!18

Diffstat:

Mlib/pleroma/web/router.ex4++++
Mlib/pleroma/web/twitter_api/twitter_api_controller.ex16++++++++++++++++
Mtest/web/twitter_api/twitter_api_controller_test.exs19+++++++++++++++++++
3 files changed, 39 insertions(+), 0 deletions(-)

diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex @@ -190,6 +190,10 @@ 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 "/friendships/no_retweets/ids", TwitterAPI.Controller, :empty_array + + get "/mutes/users/ids", TwitterAPI.Controller, :empty_array 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 @@ -278,6 +278,22 @@ 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 empty_array(conn, _params) do + json(conn, Poison.encode!([])) + 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 @@ -534,6 +534,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)