Merge develop
[akkoma] / priv / repo / migrations / 20200907092050_move_tokens_expiration_into_oban.exs
1 defmodule Pleroma.Repo.Migrations.MoveTokensExpirationIntoOban do
2 use Ecto.Migration
3
4 import Ecto.Query, only: [from: 2]
5
6 def change do
7 Supervisor.start_link([{Oban, Pleroma.Config.get(Oban)}],
8 strategy: :one_for_one,
9 name: Pleroma.Supervisor
10 )
11
12 if Pleroma.Config.get([:oauth2, :clean_expired_tokens]) do
13 from(t in Pleroma.Web.OAuth.Token, where: t.valid_until > ^NaiveDateTime.utc_now())
14 |> Pleroma.Repo.stream()
15 |> Stream.each(fn token ->
16 Pleroma.Workers.PurgeExpiredToken.enqueue(%{
17 token_id: token.id,
18 valid_until: DateTime.from_naive!(token.valid_until, "Etc/UTC"),
19 mod: Pleroma.Web.OAuth.Token
20 })
21 end)
22 |> Stream.run()
23 end
24
25 from(t in Pleroma.MFA.Token, where: t.valid_until > ^NaiveDateTime.utc_now())
26 |> Pleroma.Repo.stream()
27 |> Stream.each(fn token ->
28 Pleroma.Workers.PurgeExpiredToken.enqueue(%{
29 token_id: token.id,
30 valid_until: DateTime.from_naive!(token.valid_until, "Etc/UTC"),
31 mod: Pleroma.MFA.Token
32 })
33 end)
34 |> Stream.run()
35 end
36 end