First
[anni] / priv / repo / migrations / 20220220135625_upload_filter_exiftool_to_exiftool_strip_location.exs
1 defmodule Pleroma.Repo.Migrations.UploadFilterExiftoolToExiftoolStripLocation do
2   use Ecto.Migration
3
4   alias Pleroma.ConfigDB
5
6   def up,
7     do:
8       ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Upload})
9       |> update_filtername(
10         Pleroma.Upload.Filter.Exiftool,
11         Pleroma.Upload.Filter.Exiftool.StripLocation
12       )
13
14   def down,
15     do:
16       ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Upload})
17       |> update_filtername(
18         Pleroma.Upload.Filter.Exiftool.StripLocation,
19         Pleroma.Upload.Filter.Exiftool
20       )
21
22   defp update_filtername(%{value: value}, from_filtername, to_filtername) do
23     new_value =
24       value
25       |> Keyword.update(:filters, [], fn filters ->
26         filters
27         |> Enum.map(fn
28           ^from_filtername -> to_filtername
29           filter -> filter
30         end)
31       end)
32
33     ConfigDB.update_or_create(%{group: :pleroma, key: Pleroma.Upload, value: new_value})
34   end
35
36   defp update_filtername(_, _, _), do: nil
37 end