remove validate_expires_at from enqueue method

This commit is contained in:
Alexander Strizhakov 2020-09-08 15:11:18 +03:00 committed by rinpatch
parent a098e10fd6
commit 15aece7238
4 changed files with 30 additions and 31 deletions

View File

@ -155,8 +155,7 @@ def run(["ensure_expiration"]) do
Pleroma.Workers.PurgeExpiredActivity.enqueue(%{ Pleroma.Workers.PurgeExpiredActivity.enqueue(%{
activity_id: activity.id, activity_id: activity.id,
expires_at: expires_at, expires_at: expires_at
validate: false
}) })
end) end)
end) end)

View File

@ -18,8 +18,7 @@ defmodule Pleroma.Workers.PurgeExpiredActivity do
| {:error, :expired_activities_disabled} | {:error, :expired_activities_disabled}
| {:error, :expiration_too_close} | {:error, :expiration_too_close}
def enqueue(args) do def enqueue(args) do
with true <- enabled?(), with true <- enabled?() do
args when is_map(args) <- validate_expires_at(args) do
{scheduled_at, args} = Map.pop(args, :expires_at) {scheduled_at, args} = Map.pop(args, :expires_at)
args args
@ -42,16 +41,6 @@ defp enabled? do
end end
end end
defp validate_expires_at(%{validate: false} = args), do: Map.delete(args, :validate)
defp validate_expires_at(args) do
if expires_late_enough?(args[:expires_at]) do
args
else
{:error, :expiration_too_close}
end
end
defp find_activity(id) do defp find_activity(id) do
with nil <- Activity.get_by_id_with_object(id) do with nil <- Activity.get_by_id_with_object(id) do
{:error, :activity_not_found} {:error, :activity_not_found}

View File

@ -17,8 +17,7 @@ def change do
with {:ok, expires_at} <- DateTime.from_naive(expiration.scheduled_at, "Etc/UTC") do with {:ok, expires_at} <- DateTime.from_naive(expiration.scheduled_at, "Etc/UTC") do
Pleroma.Workers.PurgeExpiredActivity.enqueue(%{ Pleroma.Workers.PurgeExpiredActivity.enqueue(%{
activity_id: FlakeId.to_string(expiration.activity_id), activity_id: FlakeId.to_string(expiration.activity_id),
expires_at: expires_at, expires_at: expires_at
validate: false
}) })
end end
end) end)

View File

@ -10,21 +10,6 @@ defmodule Pleroma.Workers.PurgeExpiredActivityTest do
alias Pleroma.Workers.PurgeExpiredActivity alias Pleroma.Workers.PurgeExpiredActivity
test "denies expirations that don't live long enough" do
activity = insert(:note_activity)
assert {:error, :expiration_too_close} =
PurgeExpiredActivity.enqueue(%{
activity_id: activity.id,
expires_at: DateTime.utc_now()
})
refute_enqueued(
worker: Pleroma.Workers.PurgeExpiredActivity,
args: %{activity_id: activity.id}
)
end
test "enqueue job" do test "enqueue job" do
activity = insert(:note_activity) activity = insert(:note_activity)
@ -44,4 +29,31 @@ test "enqueue job" do
assert %Oban.Job{} = Pleroma.Workers.PurgeExpiredActivity.get_expiration(activity.id) assert %Oban.Job{} = Pleroma.Workers.PurgeExpiredActivity.get_expiration(activity.id)
end end
test "error if user was not found" do
activity = insert(:note_activity)
assert {:ok, _} =
PurgeExpiredActivity.enqueue(%{
activity_id: activity.id,
expires_at: DateTime.add(DateTime.utc_now(), 3601)
})
user = Pleroma.User.get_by_ap_id(activity.actor)
Pleroma.Repo.delete(user)
assert {:error, :user_not_found} =
perform_job(Pleroma.Workers.PurgeExpiredActivity, %{activity_id: activity.id})
end
test "error if actiivity was not found" do
assert {:ok, _} =
PurgeExpiredActivity.enqueue(%{
activity_id: "some_id",
expires_at: DateTime.add(DateTime.utc_now(), 3601)
})
assert {:error, :activity_not_found} =
perform_job(Pleroma.Workers.PurgeExpiredActivity, %{activity_id: "some_if"})
end
end end