Merge remote-tracking branch 'pleroma/develop' into cycles-pipeline
authorAlex Gleason <alex@alexgleason.me>
Sat, 29 May 2021 18:32:57 +0000 (13:32 -0500)
committerAlex Gleason <alex@alexgleason.me>
Sat, 29 May 2021 18:32:57 +0000 (13:32 -0500)
1  2 
lib/pleroma/web/activity_pub/pipeline.ex

index f04557a4701130e0668f94a52bdaee6952d6faf6,a0f2e0312642ac431a8a5ffa9dd5bd906e623702..0d6e8aad29630f5d8a5728bf25885739d21f5c80
@@@ -21,9 -25,9 +25,9 @@@ defmodule Pleroma.Web.ActivityPub.Pipel
    @spec common_pipeline(map(), keyword()) ::
            {:ok, Activity.t() | Object.t(), keyword()} | {:error, any()}
    def common_pipeline(object, meta) do
-     case Repo.transaction(fn -> do_common_pipeline(object, meta) end) do
+     case Repo.transaction(fn -> do_common_pipeline(object, meta) end, Utils.query_timeout()) do
        {:ok, {:ok, activity, meta}} ->
 -        @side_effects.handle_after_transaction(meta)
 +        side_effects().handle_after_transaction(meta)
          {:ok, activity, meta}
  
        {:ok, value} ->
      end
    end
  
-   def do_common_pipeline(object, meta) do
-     with {_, {:ok, validated_object, meta}} <-
-            {:validate_object, object_validator().validate(object, meta)},
-          {_, {:ok, mrfd_object, meta}} <-
-            {:mrf_object, mrf().pipeline_filter(validated_object, meta)},
-          {_, {:ok, activity, meta}} <-
-            {:persist_object, activity_pub().persist(mrfd_object, meta)},
-          {_, {:ok, activity, meta}} <-
-            {:execute_side_effects, side_effects().handle(activity, meta)},
-          {_, {:ok, _}} <- {:federation, maybe_federate(activity, meta)} do
-       {:ok, activity, meta}
+   def do_common_pipeline(%{__struct__: _}, _meta), do: {:error, :is_struct}
+   def do_common_pipeline(message, meta) do
 -    with {_, {:ok, message, meta}} <- {:validate, @object_validator.validate(message, meta)},
 -         {_, {:ok, message, meta}} <- {:mrf, @mrf.pipeline_filter(message, meta)},
 -         {_, {:ok, message, meta}} <- {:persist, @activity_pub.persist(message, meta)},
 -         {_, {:ok, message, meta}} <- {:side_effects, @side_effects.handle(message, meta)},
++    with {_, {:ok, message, meta}} <- {:validate, object_validator().validate(message, meta)},
++         {_, {:ok, message, meta}} <- {:mrf, mrf().pipeline_filter(message, meta)},
++         {_, {:ok, message, meta}} <- {:persist, activity_pub().persist(message, meta)},
++         {_, {:ok, message, meta}} <- {:side_effects, side_effects().handle(message, meta)},
+          {_, {:ok, _}} <- {:federation, maybe_federate(message, meta)} do
+       {:ok, message, meta}
      else
-       {:mrf_object, {:reject, message, _}} -> {:reject, message}
+       {:mrf, {:reject, message, _}} -> {:reject, message}
        e -> {:error, e}
      end
    end