aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/web')
-rw-r--r--lib/pleroma/web/common_api/utils.ex2
-rw-r--r--lib/pleroma/web/mastodon_api/mastodon_api_controller.ex20
-rw-r--r--lib/pleroma/web/mastodon_api/views/account_view.ex1
-rw-r--r--lib/pleroma/web/router.ex6
-rw-r--r--lib/pleroma/web/twitter_api/twitter_api.ex14
-rw-r--r--lib/pleroma/web/twitter_api/twitter_api_controller.ex24
-rw-r--r--lib/pleroma/web/twitter_api/views/user_view.ex10
7 files changed, 29 insertions, 48 deletions
diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex
index 087778dfe..4e0a6b2d9 100644
--- a/lib/pleroma/web/common_api/utils.ex
+++ b/lib/pleroma/web/common_api/utils.ex
@@ -343,7 +343,7 @@ defmodule Pleroma.Web.CommonAPI.Utils do
with %User{} = user <- User.get_by_ap_id(actor) do
subscriber_ids =
user
- |> User.subscribed_users()
+ |> User.subscribers()
|> Enum.map(& &1.ap_id)
recipients ++ subscriber_ids
diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
index 89fd7629a..e848895f1 100644
--- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
+++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
@@ -863,6 +863,26 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
json(conn, %{})
end
+ def subscribe(%{assigns: %{user: user}} = conn, %{"id" => id}) do
+ with %User{} = subscription_target <- User.get_by_id(id) do
+ {:ok, subscription_target} = User.subscribe(user, subscription_target)
+
+ conn
+ |> put_view(AccountView)
+ |> render("relationship.json", %{user: user, target: subscription_target})
+ end
+ end
+
+ def unsubscribe(%{assigns: %{user: user}} = conn, %{"id" => id}) do
+ with %User{} = subscription_target <- User.get_by_id(id) do
+ {:ok, subscription_target} = User.unsubscribe(user, subscription_target)
+
+ conn
+ |> put_view(AccountView)
+ |> render("relationship.json", %{user: user, target: subscription_target})
+ end
+ end
+
def status_search(user, query) do
fetched =
if Regex.match?(~r/https?:/, query) do
diff --git a/lib/pleroma/web/mastodon_api/views/account_view.ex b/lib/pleroma/web/mastodon_api/views/account_view.ex
index b5f3bbb9d..42595b0b5 100644
--- a/lib/pleroma/web/mastodon_api/views/account_view.ex
+++ b/lib/pleroma/web/mastodon_api/views/account_view.ex
@@ -53,6 +53,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
blocking: User.blocks?(user, target),
muting: User.mutes?(user, target),
muting_notifications: false,
+ subscribing: User.subscribed_to?(user, target),
requested: requested,
domain_blocking: false,
showing_reblogs: User.showing_reblogs?(user, target),
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index 0b571fc0b..da988e5f2 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -311,6 +311,9 @@ defmodule Pleroma.Web.Router do
post("/domain_blocks", MastodonAPIController, :block_domain)
delete("/domain_blocks", MastodonAPIController, :unblock_domain)
+
+ post("/pleroma/accounts/:id/subscribe", MastodonAPIController, :subscribe)
+ post("/pleroma/accounts/:id/unsubscribe", MastodonAPIController, :unsubscribe)
end
scope [] do
@@ -495,9 +498,6 @@ defmodule Pleroma.Web.Router do
post("/pleroma/friendships/approve", TwitterAPI.Controller, :approve_friend_request)
post("/pleroma/friendships/deny", TwitterAPI.Controller, :deny_friend_request)
- post("/pleroma/subscriptions/create", TwitterAPI.Controller, :subscribe)
- post("/pleroma/subscriptions/destroy", TwitterAPI.Controller, :unsubscribe)
-
post("/friendships/create", TwitterAPI.Controller, :follow)
post("/friendships/destroy", TwitterAPI.Controller, :unfollow)
diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex
index 5537680ad..9b081a316 100644
--- a/lib/pleroma/web/twitter_api/twitter_api.ex
+++ b/lib/pleroma/web/twitter_api/twitter_api.ex
@@ -59,20 +59,6 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
end
end
- def subscribe(%User{} = subscriber, params) do
- with {:ok, %User{} = subscribed} <- get_user(params),
- {:ok, subscriber} <- User.subscribe(subscriber, subscribed) do
- {:ok, subscriber, subscribed}
- end
- end
-
- def unsubscribe(%User{} = unsubscriber, params) do
- with {:ok, %User{} = unsubscribed} <- get_user(params),
- {:ok, unsubscriber} <- User.unsubscribe(unsubscriber, unsubscribed) do
- {:ok, unsubscriber, unsubscribed}
- 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_by_object_ap_id(id) do
diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex
index 0732705e6..a7ec9949c 100644
--- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex
+++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex
@@ -269,30 +269,6 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
end
end
- def subscribe(%{assigns: %{user: user}} = conn, params) do
- case TwitterAPI.subscribe(user, params) do
- {:ok, user, subscribed} ->
- conn
- |> put_view(UserView)
- |> render("show.json", %{user: subscribed, for: user})
-
- {:error, msg} ->
- forbidden_json_reply(conn, msg)
- end
- end
-
- def unsubscribe(%{assigns: %{user: user}} = conn, params) do
- case TwitterAPI.unsubscribe(user, params) do
- {:ok, user, unsubscribed} ->
- conn
- |> put_view(UserView)
- |> render("show.json", %{user: unsubscribed, for: user})
-
- {:error, msg} ->
- forbidden_json_reply(conn, msg)
- end
- end
-
def fetch_status(%{assigns: %{user: user}} = conn, %{"id" => id}) do
with %Activity{} = activity <- Activity.get_by_id(id),
true <- Visibility.visible_for_user?(activity, user) do
diff --git a/lib/pleroma/web/twitter_api/views/user_view.ex b/lib/pleroma/web/twitter_api/views/user_view.ex
index c59570d3e..0791ed760 100644
--- a/lib/pleroma/web/twitter_api/views/user_view.ex
+++ b/lib/pleroma/web/twitter_api/views/user_view.ex
@@ -47,16 +47,15 @@ defmodule Pleroma.Web.TwitterAPI.UserView do
for_user = assigns[:for]
image = User.avatar_url(user) |> MediaProxy.url()
- {following, follows_you, statusnet_blocking, subscribed} =
+ {following, follows_you, statusnet_blocking} =
if for_user do
{
User.following?(for_user, user),
User.following?(user, for_user),
- User.blocks?(for_user, user),
- User.subscribed_to?(for_user, user)
+ User.blocks?(for_user, user)
}
else
- {false, false, false, false}
+ {false, false, false}
end
user_info = User.get_cached_user_info(user)
@@ -117,8 +116,7 @@ defmodule Pleroma.Web.TwitterAPI.UserView do
"pleroma" =>
%{
"confirmation_pending" => user_info.confirmation_pending,
- "tags" => user.tags,
- "subscribed" => subscribed
+ "tags" => user.tags
}
|> maybe_with_activation_status(user, for_user)
}