aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/activity.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/activity.ex')
-rw-r--r--lib/pleroma/activity.ex20
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex
index 200addd6e..0845233ee 100644
--- a/lib/pleroma/activity.ex
+++ b/lib/pleroma/activity.ex
@@ -1,7 +1,7 @@
defmodule Pleroma.Activity do
use Ecto.Schema
alias Pleroma.{Repo, Activity, Notification}
- import Ecto.Query
+ import Ecto.{Query, Changeset}
# https://github.com/tootsuite/mastodon/blob/master/app/models/notification.rb#L19
@mastodon_notification_types %{
@@ -103,4 +103,22 @@ defmodule Pleroma.Activity do
end
def mastodon_notification_type(%Activity{}), do: nil
+
+ def get_tombstone(%Activity{data: data}, deleted \\ DateTime.utc_now()) do
+ %{
+ id: data["id"],
+ context: data["context"],
+ type: "tombstone",
+ published: data["published"],
+ deleted: deleted
+ }
+ end
+
+ def swap_data_with_tombstone(activity) do
+ tombstone = get_tombstone(activity)
+
+ activity
+ |> change(%{data: tombstone})
+ |> Repo.update()
+ end
end