summaryrefslogtreecommitdiff
path: root/priv/repo/migrations/20201005132900_transparency_exclusions_string_to_tuple.exs
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2021-12-07 13:41:54 -0500
committerAlex Gleason <alex@alexgleason.me>2021-12-07 13:41:54 -0500
commit2c96668a2c20906e5159fdea9326dbba4ca6ca62 (patch)
treee7fc1def45d51ba8011c1cfacb28c2523279e09b /priv/repo/migrations/20201005132900_transparency_exclusions_string_to_tuple.exs
parent335684182a094c10fb9f72e3865fd1b9606484a4 (diff)
parentb57041c59a14df78b4a461e68911a9edc788bc0a (diff)
downloadpleroma-2c96668a2c20906e5159fdea9326dbba4ca6ca62.tar.gz
pleroma-2c96668a2c20906e5159fdea9326dbba4ca6ca62.zip
Merge remote-tracking branch 'origin/develop' into fix-attachment-dimensions
Diffstat (limited to 'priv/repo/migrations/20201005132900_transparency_exclusions_string_to_tuple.exs')
-rw-r--r--priv/repo/migrations/20201005132900_transparency_exclusions_string_to_tuple.exs61
1 files changed, 61 insertions, 0 deletions
diff --git a/priv/repo/migrations/20201005132900_transparency_exclusions_string_to_tuple.exs b/priv/repo/migrations/20201005132900_transparency_exclusions_string_to_tuple.exs
new file mode 100644
index 000000000..6516083a7
--- /dev/null
+++ b/priv/repo/migrations/20201005132900_transparency_exclusions_string_to_tuple.exs
@@ -0,0 +1,61 @@
+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