aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlambda <pleromagit@rogerbraun.net>2017-11-14 16:47:54 +0000
committerlambda <pleromagit@rogerbraun.net>2017-11-14 16:47:54 +0000
commit1cca544e206e8e7f38077fba6392c252803c13ec (patch)
tree3471f5605e753aa75b0519393692a59fcdc1f4f5
parent1eb7a862d2fcace74a8cf8ea6154760f5509c094 (diff)
parent163c65820265de5d5dbed50831c218444ebbbed1 (diff)
downloadpleroma-1cca544e206e8e7f38077fba6392c252803c13ec.tar.gz
Merge branch 'twitterapi-bitlbee' into 'develop'
TwitterAPI: Add missing endpoints for bitlbee. Closes #67 See merge request pleroma/pleroma!18
-rw-r--r--lib/pleroma/web/router.ex4
-rw-r--r--lib/pleroma/web/twitter_api/twitter_api_controller.ex16
-rw-r--r--test/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
index 71b4a3692..beca1581e 100644
--- 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
index 5e50c3b18..e319cfb8c 100644
--- 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
index b886536d6..6f56b8424 100644
--- 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)