aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/user.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r--lib/pleroma/user.ex20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 5012aef77..b7cab8642 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -923,6 +923,26 @@ defmodule Pleroma.User do
update_and_set_cache(cng)
end
+ def subscribe(subscriber, %{ap_id: ap_id}) do
+ info_cng =
+ subscriber.info
+ |> User.Info.add_to_subscriptions(ap_id)
+
+ change(subscriber)
+ |> put_embed(:info, info_cng)
+ |> update_and_set_cache()
+ end
+
+ def unsubscribe(unsubscriber, %{ap_id: ap_id}) do
+ info_cng =
+ subscriber.info
+ |> User.Info.remove_from_subscriptions(ap_id)
+
+ change(subscriber)
+ |> put_embed(:info, info_cng)
+ |> update_and_set_cache()
+ end
+
def block(blocker, %User{ap_id: ap_id} = blocked) do
# sever any follow relationships to prevent leaks per activitypub (Pleroma issue #213)
blocker =