format
[akkoma] / lib / pleroma / web / activity_pub / side_effects.ex
index 701181a1419e2f12bce3932fba3d0014832019da..9b17eba953382a2d5d9c215900b4fab8d07240b7 100644 (file)
@@ -199,8 +199,9 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do
          %User{} = user <- User.get_cached_by_ap_id(activity.data["actor"]) do
       {:ok, notifications} = Notification.create_notifications(activity, do_send: false)
       {:ok, _user} = ActivityPub.increase_note_count_if_public(user, object)
+      {:ok, _user} = ActivityPub.update_last_status_at_if_public(user, object)
 
-      if in_reply_to = object.data["inReplyTo"] && object.data["type"] != "Answer" do
+      if in_reply_to = object.data["type"] != "Answer" && object.data["inReplyTo"] do
         Object.increase_replies_count(in_reply_to)
       end
 
@@ -537,6 +538,24 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do
   end
 
   @impl true
+  def handle_after_transaction(%Pleroma.Activity{data: %{"type" => "Create"}} = activity) do
+    Pleroma.Elasticsearch.put_by_id(:activity, activity.id)
+  end
+
+  def handle_after_transaction(%Pleroma.Activity{
+        data: %{"type" => "Delete", "deleted_activity_id" => id}
+      }) do
+    Pleroma.Elasticsearch.delete_by_id(:activity, id)
+  end
+
+  def handle_after_transaction(%Pleroma.Activity{}) do
+    :ok
+  end
+
+  def handle_after_transaction(%Pleroma.Object{}) do
+    :ok
+  end
+
   def handle_after_transaction(meta) do
     meta
     |> send_notifications()