diff options
| author | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2021-08-09 09:37:59 +0000 |
|---|---|---|
| committer | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2021-08-09 09:37:59 +0000 |
| commit | 6384d7803520f633a66d1cb9f76e3540863f92fb (patch) | |
| tree | 93754d8c8a01c556c0fabca6ac3acdea3d4f02d3 /priv/repo/migrations/20201005124600_quarantained_policy_string_to_tuple.exs | |
| parent | c45b3bde949bbbd6b8d6de30022c1d1e5b99dc44 (diff) | |
| parent | ad09bdb3764e529d1f0682b5395f34bc4849bd22 (diff) | |
| download | pleroma-6384d7803520f633a66d1cb9f76e3540863f92fb.tar.gz pleroma-6384d7803520f633a66d1cb9f76e3540863f92fb.zip | |
Merge branch 'simple_policy_reasons_for_instance_specific_policies' into 'develop'
Simple policy reasons for instance specific policies
See merge request pleroma/pleroma!3314
Diffstat (limited to 'priv/repo/migrations/20201005124600_quarantained_policy_string_to_tuple.exs')
| -rw-r--r-- | priv/repo/migrations/20201005124600_quarantained_policy_string_to_tuple.exs | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/priv/repo/migrations/20201005124600_quarantained_policy_string_to_tuple.exs b/priv/repo/migrations/20201005124600_quarantained_policy_string_to_tuple.exs new file mode 100644 index 000000000..b924e4638 --- /dev/null +++ b/priv/repo/migrations/20201005124600_quarantained_policy_string_to_tuple.exs @@ -0,0 +1,61 @@ +defmodule Pleroma.Repo.Migrations.QuarantainedStringToTuple do + use Ecto.Migration + + alias Pleroma.ConfigDB + + def up, + do: + ConfigDB.get_by_params(%{group: :pleroma, key: :instance}) + |> update_quarantined_instances_to_tuples + + def down, + do: + ConfigDB.get_by_params(%{group: :pleroma, key: :instance}) + |> update_quarantined_instances_to_strings + + defp update_quarantined_instances_to_tuples(%{value: settings}) do + settings |> List.keyfind(:quarantined_instances, 0) |> update_to_tuples + end + + defp update_quarantined_instances_to_tuples(nil), do: {:ok, nil} + + defp update_to_tuples({:quarantined_instances, instance_list}) do + new_value = + instance_list + |> Enum.map(fn + {v, r} -> {v, r} + v -> {v, ""} + end) + + ConfigDB.update_or_create(%{ + group: :pleroma, + key: :instance, + value: [quarantined_instances: new_value] + }) + end + + defp update_to_tuples(nil), do: {:ok, nil} + + defp update_quarantined_instances_to_strings(%{value: settings}) do + settings |> List.keyfind(:quarantined_instances, 0) |> update_to_strings + end + + defp update_quarantined_instances_to_strings(nil), do: {:ok, nil} + + defp update_to_strings({:quarantined_instances, instance_list}) do + new_value = + instance_list + |> Enum.map(fn + {v, _} -> v + v -> v + end) + + ConfigDB.update_or_create(%{ + group: :pleroma, + key: :instance, + value: [quarantined_instances: new_value] + }) + end + + defp update_to_strings(nil), do: {:ok, nil} +end |
