SideEffects: Handle user updating.
[akkoma] / lib / pleroma / web / activity_pub / side_effects.ex
index 1a1cc675cc3e5b0909c44e95157702c2666e4041..09fd7d7c9d7450bcec2004f5d008561ab4c7bee8 100644 (file)
@@ -20,6 +20,18 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do
 
   def handle(object, meta \\ [])
 
+  # Tasks this handles:
+  # Update the user
+  def handle(%{data: %{"type" => "Update", "object" => updated_object}} = object, meta) do
+    {:ok, new_user_data} = ActivityPub.user_data_from_user_object(updated_object)
+
+    User.get_by_ap_id(updated_object["id"])
+    |> User.remote_user_changeset(new_user_data)
+    |> User.update_and_set_cache()
+
+    {:ok, object, meta}
+  end
+
   # Tasks this handles:
   # - Add like to object
   # - Set up notification