Add basic incoming deletions.
This commit is contained in:
parent
558ab6e74e
commit
f226f46a09
5 changed files with 85 additions and 3 deletions
|
|
@ -15,9 +15,13 @@ defmodule Pleroma.Activity do
|
|||
where: fragment("(?)->>'id' = ?", activity.data, ^to_string(ap_id)))
|
||||
end
|
||||
|
||||
def all_by_object_ap_id_q(ap_id) do
|
||||
from activity in Activity,
|
||||
where: fragment("(?)->'object'->>'id' = ?", activity.data, ^to_string(ap_id))
|
||||
end
|
||||
|
||||
def all_by_object_ap_id(ap_id) do
|
||||
Repo.all(from activity in Activity,
|
||||
where: fragment("(?)->'object'->>'id' = ?", activity.data, ^to_string(ap_id)))
|
||||
Repo.all(all_by_object_ap_id_q(ap_id))
|
||||
end
|
||||
|
||||
def get_create_activity_by_object_ap_id(ap_id) do
|
||||
|
|
|
|||
14
lib/pleroma/web/ostatus/handlers/delete_handler.ex
Normal file
14
lib/pleroma/web/ostatus/handlers/delete_handler.ex
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
defmodule Pleroma.Web.OStatus.DeleteHandler do
|
||||
require Logger
|
||||
alias Pleroma.Web.{XML, OStatus}
|
||||
alias Pleroma.{Activity, Object, Repo}
|
||||
|
||||
def handle_delete(entry, doc \\ nil) do
|
||||
with id <- XML.string_from_xpath("//id", entry),
|
||||
object when not is_nil(object) <- Object.get_by_ap_id(id) do
|
||||
Repo.delete(object)
|
||||
Repo.delete_all(Activity.all_by_object_ap_id_q(id))
|
||||
nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -9,7 +9,7 @@ defmodule Pleroma.Web.OStatus do
|
|||
alias Pleroma.Web.ActivityPub.ActivityPub
|
||||
alias Pleroma.Web.ActivityPub.Utils
|
||||
alias Pleroma.Web.{WebFinger, Websub}
|
||||
alias Pleroma.Web.OStatus.{FollowHandler, NoteHandler}
|
||||
alias Pleroma.Web.OStatus.{FollowHandler, NoteHandler, DeleteHandler}
|
||||
|
||||
def feed_path(user) do
|
||||
"#{user.ap_id}/feed.atom"
|
||||
|
|
@ -34,6 +34,8 @@ defmodule Pleroma.Web.OStatus do
|
|||
|
||||
try do
|
||||
case verb do
|
||||
'http://activitystrea.ms/schema/1.0/delete' ->
|
||||
with {:ok, activity} <- DeleteHandler.handle_delete(entry, doc), do: activity
|
||||
'http://activitystrea.ms/schema/1.0/follow' ->
|
||||
with {:ok, activity} <- FollowHandler.handle(entry, doc), do: activity
|
||||
'http://activitystrea.ms/schema/1.0/share' ->
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue