ObjectID Validator: Refactor.
[akkoma] / lib / pleroma / web / activity_pub / activity_pub.ex
index dd4b04185c97603175f4d6552c9e6465533d11a9..55f4de693803d2682f5e5ee98b583dab841c52b9 100644 (file)
@@ -125,24 +125,22 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
 
   def increase_poll_votes_if_vote(_create_data), do: :noop
 
-  @spec insert(map(), boolean(), boolean(), boolean()) :: {:ok, Activity.t()} | {:error, any()}
-  # TODO rewrite in with style
   @spec persist(map(), keyword()) :: {:ok, Activity.t() | Object.t()}
   def persist(object, meta) do
-    local = Keyword.fetch!(meta, :local)
-    {recipients, _, _} = get_recipients(object)
-
-    {:ok, activity} =
-      Repo.insert(%Activity{
-        data: object,
-        local: local,
-        recipients: recipients,
-        actor: object["actor"]
-      })
-
-    {:ok, activity, meta}
+    with local <- Keyword.fetch!(meta, :local),
+         {recipients, _, _} <- get_recipients(object),
+         {:ok, activity} <-
+           Repo.insert(%Activity{
+             data: object,
+             local: local,
+             recipients: recipients,
+             actor: object["actor"]
+           }) do
+      {:ok, activity, meta}
+    end
   end
 
+  @spec insert(map(), boolean(), boolean(), boolean()) :: {:ok, Activity.t()} | {:error, any()}
   def insert(map, local \\ true, fake \\ false, bypass_actor_check \\ false) when is_map(map) do
     with nil <- Activity.normalize(map),
          map <- lazy_put_activity_defaults(map, fake),