aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authoreal <eal@waifu.club>2017-11-08 00:04:53 +0200
committereal <eal@waifu.club>2017-11-08 00:04:53 +0200
commit6c0758e041e63d9a8792d2fe7760813f074bc06e (patch)
treee0406fd54ddedb1780289d643a230ea32ac6a05b /lib
parentbe67db55475f2dc44590680242e116d3d0d4c1ec (diff)
downloadpleroma-6c0758e041e63d9a8792d2fe7760813f074bc06e.tar.gz
TwitterAPI: Add blocks.
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/router.ex2
-rw-r--r--lib/pleroma/web/twitter_api/twitter_api.ex20
-rw-r--r--lib/pleroma/web/twitter_api/twitter_api_controller.ex16
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})