Add activity expirations table

Add a table to store activity expirations. An activity can have zero or
one expirations. The expiration has a scheduled_at field which stores
the time at which the activity should expire and be deleted.
This commit is contained in:
Mike Verdone 2019-07-22 14:16:20 +02:00
commit 666514194a
6 changed files with 92 additions and 1 deletions

View file

@ -1,5 +1,5 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Factory do
@ -142,6 +142,23 @@ defmodule Pleroma.Factory do
|> Map.merge(attrs)
end
defp expiration_offset_by_minutes(attrs, minutes) do
%Pleroma.ActivityExpiration{}
|> Map.merge(attrs)
|> Map.put(
:scheduled_at,
NaiveDateTime.add(NaiveDateTime.utc_now(), :timer.minutes(minutes), :millisecond)
)
end
def expiration_in_the_past_factory(attrs \\ %{}) do
expiration_offset_by_minutes(attrs, -60)
end
def expiration_in_the_future_factory(attrs \\ %{}) do
expiration_offset_by_minutes(attrs, 60)
end
def article_activity_factory do
article = insert(:article)