Merge branch 'copyright-fun' into '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 Pleroma.Config.Oban.warn()
8
9 Application.ensure_all_started(:oban)
10
11 Supervisor.start_link([{Oban, Pleroma.Config.get(Oban)}],
12 strategy: :one_for_one,
13 name: Pleroma.Supervisor
14 )
15
16 if Pleroma.Config.get([:oauth2, :clean_expired_tokens]) do
17 from(t in Pleroma.Web.OAuth.Token, where: t.valid_until > ^NaiveDateTime.utc_now())
18 |> Pleroma.Repo.stream()
19 |> Stream.each(fn token ->
20 Pleroma.Workers.PurgeExpiredToken.enqueue(%{
21 token_id: token.id,
22 valid_until: DateTime.from_naive!(token.valid_until, "Etc/UTC"),
23 mod: Pleroma.Web.OAuth.Token
24 })
25 end)
26 |> Stream.run()
27 end
28
29 from(t in Pleroma.MFA.Token, where: t.valid_until > ^NaiveDateTime.utc_now())
30 |> Pleroma.Repo.stream()
31 |> Stream.each(fn token ->
32 Pleroma.Workers.PurgeExpiredToken.enqueue(%{
33 token_id: token.id,
34 valid_until: DateTime.from_naive!(token.valid_until, "Etc/UTC"),
35 mod: Pleroma.MFA.Token
36 })
37 end)
38 |> Stream.run()
39 end
40 end