diff options
author | eal <eal@waifu.club> | 2017-11-08 00:04:53 +0200 |
---|---|---|
committer | eal <eal@waifu.club> | 2017-11-08 00:04:53 +0200 |
commit | 6c0758e041e63d9a8792d2fe7760813f074bc06e (patch) | |
tree | e0406fd54ddedb1780289d643a230ea32ac6a05b /lib | |
parent | be67db55475f2dc44590680242e116d3d0d4c1ec (diff) | |
download | pleroma-6c0758e041e63d9a8792d2fe7760813f074bc06e.tar.gz |
TwitterAPI: Add blocks.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/router.ex | 2 | ||||
-rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api.ex | 20 | ||||
-rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api_controller.ex | 16 |
3 files changed, 38 insertions, 0 deletions
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index b43235d8d..0a0aea966 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -164,6 +164,8 @@ defmodule Pleroma.Web.Router do post "/friendships/create", TwitterAPI.Controller, :follow post "/friendships/destroy", TwitterAPI.Controller, :unfollow + post "/blocks/create", TwitterAPI.Controller, :block + post "/blocks/destroy", TwitterAPI.Controller, :unblock post "/statusnet/media/upload", TwitterAPI.Controller, :upload post "/media/upload", TwitterAPI.Controller, :upload_json diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex index 912d5e278..baa3dac96 100644 --- a/lib/pleroma/web/twitter_api/twitter_api.ex +++ b/lib/pleroma/web/twitter_api/twitter_api.ex @@ -86,6 +86,26 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do end end + def block(%User{} = blocker, params) do + with {:ok, %User{} = blocked} <- get_user(params), + {:ok, blocker} <- User.block(blocker, blocked) + do + {:ok, blocker, blocked} + else + err -> err + end + end + + def unblock(%User{} = blocker, params) do + with {:ok, %User{} = blocked} <- get_user(params), + {:ok, blocker} <- User.unblock(blocker, blocked) + do + {:ok, blocker, blocked} + else + err -> err + end + end + def repeat(%User{} = user, ap_id_or_id) do with {:ok, _announce, %{data: %{"id" => id}}} = CommonAPI.repeat(ap_id_or_id, user), %Activity{} = activity <- Activity.get_create_activity_by_object_ap_id(id), diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex index 6154d5ad7..2604b54dc 100644 --- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex +++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex @@ -93,6 +93,22 @@ defmodule Pleroma.Web.TwitterAPI.Controller do end end + def block(%{assigns: %{user: user}} = conn, params) do + case TwitterAPI.block(user, params) do + {:ok, user, blocked} -> + render conn, UserView, "show.json", %{user: blocked, for: user} + {:error, msg} -> forbidden_json_reply(conn, msg) + end + end + + def unblock(%{assigns: %{user: user}} = conn, params) do + case TwitterAPI.unblock(user, params) do + {:ok, user, blocked} -> + render conn, UserView, "show.json", %{user: blocked, for: user} + {:error, msg} -> forbidden_json_reply(conn, msg) + end + end + def delete_post(%{assigns: %{user: user}} = conn, %{"id" => id}) do with {:ok, delete} <- CommonAPI.delete(id, user) do json = ActivityRepresenter.to_json(delete, %{user: user, for: user}) |