Migrate :auto_linker --> Pleroma.Formatter in ConfigDB
This commit is contained in:
parent
880301985b
commit
613e096389
1 changed files with 37 additions and 0 deletions
|
@ -0,0 +1,37 @@
|
||||||
|
defmodule Pleroma.Repo.Migrations.AutolinkerToLinkify do
|
||||||
|
use Ecto.Migration
|
||||||
|
|
||||||
|
alias Pleroma.Repo
|
||||||
|
alias Pleroma.ConfigDB
|
||||||
|
|
||||||
|
@autolinker_path %{group: :auto_linker, key: :opts}
|
||||||
|
@linkify_path %{group: :pleroma, key: Pleroma.Formatter}
|
||||||
|
|
||||||
|
@compat_opts [:class, :rel, :new_window, :truncate, :strip_prefix, :extra]
|
||||||
|
|
||||||
|
def change do
|
||||||
|
with {:ok, {old, new}} <- maybe_get_params() do
|
||||||
|
move_config(old, new)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
defp move_config(%{} = old, %{} = new) do
|
||||||
|
{:ok, _} = ConfigDB.update_or_create(new)
|
||||||
|
{:ok, _} = ConfigDB.delete(old)
|
||||||
|
:ok
|
||||||
|
end
|
||||||
|
|
||||||
|
defp maybe_get_params() do
|
||||||
|
with %ConfigDB{value: opts} <- ConfigDB.get_by_params(@autolinker_path),
|
||||||
|
%{} = opts <- transform_opts(opts),
|
||||||
|
%{} = linkify_params <- Map.put(@linkify_path, :value, opts) do
|
||||||
|
{:ok, {@autolinker_path, linkify_params}}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
defp transform_opts(opts) when is_list(opts) do
|
||||||
|
opts
|
||||||
|
|> Enum.into(%{})
|
||||||
|
|> Map.take(@compat_opts)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue