Purge Rejected Follow requests in daily task (#334)
[akkoma] / lib / pleroma / activity / pruner.ex
index 054ee514ae5313cbb3ba7949f07d6e05052227b3..7f561ebae5e41bd6676d7004dceb26918400f12a 100644 (file)
@@ -35,6 +35,17 @@ defmodule Pleroma.Activity.Pruner do
     |> Repo.delete_all(timeout: :infinity)
   end
 
+  def prune_stale_follow_requests do
+    before_time = cutoff()
+
+    from(a in Activity,
+      where:
+        fragment("?->>'type' = ?", a.data, "Follow") and a.inserted_at < ^before_time and
+          fragment("?->>'state' = ?", a.data, "reject")
+    )
+    |> Repo.delete_all(timeout: :infinity)
+  end
+
   defp cutoff do
     DateTime.utc_now() |> Timex.shift(days: -@cutoff)
   end