user = User.get_cached_by_ap_id(actor)
to =
- object.data["to"] || [] ++ object.data["cc"] ||
- [] ++ [user.follower_address, "https://www.w3.org/ns/activitystreams#Public"]
+ case Object.get_cached_by_ap_id(id) do
+ nil ->
+ [user.follower_address, "https://www.w3.org/ns/activitystreams#Public"]
+
+ object ->
+ object.data["to"] || [] ++ object.data["cc"] ||
+ [] ++ [user.follower_address, "https://www.w3.org/ns/activitystreams#Public"]
+ end
data = %{
"type" => "Delete",
user = Repo.get(User, user.id)
assert user.info.note_count == 10
end
-
+
test "it creates a delete activity and checks that it is also sent to users mentioned by the deleted object" do
user = insert(:user)
note = insert(:note_activity)
- object = Object.get_by_ap_id(note.data["object"]["id"])
- object = Kernel.put_in(object.data["to"], [user.ap_id])
+
+ {:ok, object} =
+ Object.get_by_ap_id(note.data["object"]["id"])
+ |> Object.change(%{
+ data: %{
+ "actor" => note.data["object"]["actor"],
+ "id" => note.data["object"]["id"],
+ "to" => [user.ap_id],
+ "type" => "Note"
+ }
+ })
+ |> Object.update_and_set_cache()
+
{:ok, delete} = ActivityPub.delete(object)
assert user.ap_id in delete.data["to"]