additional
),
{:ok, activity} <- insert(create_data, local),
- :ok <- maybe_federate(activity) do
+ :ok <- maybe_federate(activity),
+ {:ok, actor} <- User.increase_note_count(actor) do
{:ok, activity}
end
end
end
end
+ def unannounce(
+ %User{} = actor,
+ %Object{} = object,
+ local \\ true,
+ activity_id \\ nil
+ ) do
+ with %Activity{} = activity <- get_existing_announce(actor.ap_id, object),
+ unannounce_data <- make_unannounce_data(actor, activity, activity_id),
+ {:ok, unannounce_activity} <- insert(unannounce_data, local),
+ :ok <- maybe_federate(activity),
+ {:ok, _activity} <- Repo.delete(activity),
+ {:ok, object} <- remove_announce_from_object(activity, object) do
+ {:ok, unannounce_activity, activity, object}
+ else
+ _e -> {:ok, object}
+ end
+ end
+
def follow(follower, followed, activity_id \\ nil, local \\ true) do
with data <- make_follow_data(follower, followed, activity_id),
{:ok, activity} <- insert(data, local),
with Repo.delete(object),
Repo.delete_all(Activity.all_non_create_by_object_ap_id_q(id)),
{:ok, activity} <- insert(data, local),
- :ok <- maybe_federate(activity) do
+ :ok <- maybe_federate(activity),
+ {:ok, actor} <- User.decrease_note_count(user) do
{:ok, activity}
end
end