def unsubscribe(unsubscriber, %{ap_id: ap_id}) do
info_cng =
- subscriber.info
+ unsubscriber.info
|> User.Info.remove_from_subscriptions(ap_id)
- change(subscriber)
+ change(unsubscriber)
|> put_embed(:info, info_cng)
|> update_and_set_cache()
end
end)
end
+ def subscribed_to?(user, %{ap_id: ap_id}) do
+ subs = user.info.subscriptions
+ Enum.member?(subs, ap_id)
+ end
+
def muted_users(user),
do: Repo.all(from(u in User, where: u.ap_id in ^user.info.mutes))
def blocked_users(user),
do: Repo.all(from(u in User, where: u.ap_id in ^user.info.blocks))
+ def subscribed_users(user),
+ do:
+ Repo.all(
+ from(u in User,
+ where: fragment("?->'subscriptions' @> ?", u.info, ^user.ap_id)
+ )
+ )
+
def block_domain(user, domain) do
info_cng =
user.info