Purge Rejected Follow requests in daily task #334

Merged
floatingghost merged 6 commits from purge-rejected-follow-requests into develop 2022-12-03 23:17:43 +00:00
3 changed files with 48 additions and 0 deletions
Showing only changes of commit 55436d5823 - Show all commits

View file

@ -35,6 +35,17 @@ def prune_removes 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

View file

@ -24,4 +24,40 @@ test "it prunes old delete objects" do
refute Activity.get_by_id(old_delete.id)
end
end
describe "prune_stale_follow_requests" do
test "it prunes old follow requests" do
follower = insert(:user)
followee = insert(:user)
new_follow_request =
insert(
:follow_activity,
follower: follower,
followd: followee,
state: "reject"
)
old_not_rejected_request =
insert(:follow_activity,
follower: follower,
followd: followee,
state: "pending",
inserted_at: DateTime.utc_now() |> DateTime.add(-31 * 24, :hour)
)
old_follow_request =
insert(:follow_activity,
follower: follower,
followd: followee,
inserted_at: DateTime.utc_now() |> DateTime.add(-31 * 24, :hour),
state: "reject"
)
Pruner.prune_stale_follow_requests()
assert Activity.get_by_id(new_follow_request.id)
assert Activity.get_by_id(old_not_rejected_request.id)
refute Activity.get_by_id(old_follow_request.id)
end
end
end

View file

@ -469,6 +469,7 @@ def follow_activity_factory(attrs \\ %{}) do
data: data,
actor: follower.ap_id
}
|> Map.merge(attrs)
end
def report_activity_factory(attrs \\ %{}) do