mirror of
https://akkoma.dev/AkkomaGang/akkoma.git
synced 2024-12-30 04:14:57 +00:00
62 lines
1.6 KiB
Elixir
62 lines
1.6 KiB
Elixir
|
defmodule Pleroma.Repo.Migrations.TransparencyExclusionsStringToTuple do
|
||
|
use Ecto.Migration
|
||
|
|
||
|
alias Pleroma.ConfigDB
|
||
|
|
||
|
def up,
|
||
|
do:
|
||
|
ConfigDB.get_by_params(%{group: :pleroma, key: :mrf})
|
||
|
|> update_transparency_exclusions_instances_to_tuples
|
||
|
|
||
|
def down,
|
||
|
do:
|
||
|
ConfigDB.get_by_params(%{group: :pleroma, key: :mrf})
|
||
|
|> update_transparency_exclusions_instances_to_strings
|
||
|
|
||
|
defp update_transparency_exclusions_instances_to_tuples(%{value: settings}) do
|
||
|
settings |> List.keyfind(:transparency_exclusions, 0) |> update_to_tuples
|
||
|
end
|
||
|
|
||
|
defp update_transparency_exclusions_instances_to_tuples(nil), do: {:ok, nil}
|
||
|
|
||
|
defp update_to_tuples({:transparency_exclusions, instance_list}) do
|
||
|
new_value =
|
||
|
instance_list
|
||
|
|> Enum.map(fn
|
||
|
{v, r} -> {v, r}
|
||
|
v -> {v, ""}
|
||
|
end)
|
||
|
|
||
|
ConfigDB.update_or_create(%{
|
||
|
group: :pleroma,
|
||
|
key: :mrf,
|
||
|
value: [transparency_exclusions: new_value]
|
||
|
})
|
||
|
end
|
||
|
|
||
|
defp update_to_tuples(nil), do: {:ok, nil}
|
||
|
|
||
|
defp update_transparency_exclusions_instances_to_strings(%{value: settings}) do
|
||
|
settings |> List.keyfind(:transparency_exclusions, 0) |> update_to_strings
|
||
|
end
|
||
|
|
||
|
defp update_transparency_exclusions_instances_to_strings(nil), do: {:ok, nil}
|
||
|
|
||
|
defp update_to_strings({:transparency_exclusions, instance_list}) do
|
||
|
new_value =
|
||
|
instance_list
|
||
|
|> Enum.map(fn
|
||
|
{v, _} -> v
|
||
|
v -> v
|
||
|
end)
|
||
|
|
||
|
ConfigDB.update_or_create(%{
|
||
|
group: :pleroma,
|
||
|
key: :mrf,
|
||
|
value: [transparency_exclusions: new_value]
|
||
|
})
|
||
|
end
|
||
|
|
||
|
defp update_to_strings(nil), do: {:ok, nil}
|
||
|
end
|