%{
id: data["id"],
context: data["context"],
- type: "tombstone",
+ 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()
+ with tombstone = get_tombstone(activity),
+ Notification.clear(activity),
+ {:ok, changed_activity} =
+ activity
+ |> change(%{data: tombstone})
+ |> Repo.update() do
+ {:ok, changed_activity}
+ end
end
end
end
end
- def clear(user) do
- query = from(n in Notification, where: n.user_id == ^user.id)
+ def clear(%User{} = user) do
+ from(n in Notification, where: n.user_id == ^user.id)
+ |> Repo.delete_all()
+ end
- Repo.delete_all(query)
+ def clear(%Activity{} = activity) do
+ from(n in Notification, where: n.activity_id == ^activity.id)
+ |> Repo.delete_all()
end
def dismiss(%{id: user_id} = _user, id) do
end
def set_reply_to_uri(%{"inReplyTo" => inReplyTo} = object) do
- with false <- String.starts_with?(inReplyTo, "http"),
+ with false <- is_nil(inReplyTo),
+ false <- String.starts_with?(inReplyTo, "http"),
{:ok, %{data: replied_to_object}} <- get_obj_helper(inReplyTo) do
Map.put(object, "inReplyTo", replied_to_object["external_url"] || inReplyTo)
else
deleted = DateTime.utc_now()
assert Pleroma.Activity.get_tombstone(activity, deleted) == %{
- id: activity.data["object"]["id"],
+ id: activity.data["id"],
context: activity.data["context"],
type: "Tombstone",
published: activity.data["published"],
{:ok, [delete]} = OStatus.handle_incoming(incoming)
- refute Repo.get(Activity, note.id)
- refute Repo.get(Activity, like.id)
- refute Object.get_by_ap_id(note.data["object"]["id"])
+ assert Repo.get(Activity, note.id).data["type"] == "Tombstone"
+ assert Repo.get(Activity, like.id).data["type"] == "Tombstone"
+ assert Object.get_by_ap_id(note.data["object"]["id"]).data["type"] == "Tombstone"
assert Repo.get(Activity, second_note.id)
assert Object.get_by_ap_id(second_note.data["object"]["id"])