analytics/lib/workers/clean_invitations.ex

26 lines
544 B
Elixir

defmodule Plausible.Workers.CleanInvitations do
use Plausible.Repo
use Oban.Worker, queue: :clean_invitations
@cutoff Duration.new!(hour: -48)
@impl Oban.Worker
def perform(_job) do
cutoff_time =
NaiveDateTime.utc_now(:second)
|> NaiveDateTime.shift(@cutoff)
Repo.delete_all(
from ti in Plausible.Teams.Invitation,
where: ti.inserted_at < ^cutoff_time
)
Repo.delete_all(
from ti in Plausible.Teams.SiteTransfer,
where: ti.inserted_at < ^cutoff_time
)
:ok
end
end