diff options
author | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2020-01-22 15:14:11 +0300 |
---|---|---|
committer | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2020-01-22 15:14:11 +0300 |
commit | d5f8a88a37cb4a2341f11d5e39adfaba024e3486 (patch) | |
tree | bdceda8a2bff68eb6c4535177b041e92b30f0fe5 /lib/pleroma/web | |
parent | 32a643a159df2b2af4263ebfb7f7c9fd245d3a6a (diff) | |
download | pleroma-d5f8a88a37cb4a2341f11d5e39adfaba024e3486.tar.gz |
support for updating env after settings deletion
Diffstat (limited to 'lib/pleroma/web')
-rw-r--r-- | lib/pleroma/web/admin_api/admin_api_controller.ex | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index 1b09d137b..2314d3274 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -871,26 +871,26 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do def config_update(conn, %{"configs" => configs}) do with :ok <- configurable_from_database(conn) do - updated = + {_errors, results} = Enum.map(configs, fn %{"group" => group, "key" => key, "delete" => true} = params -> - with {:ok, config} <- - ConfigDB.delete(%{group: group, key: key, subkeys: params["subkeys"]}) do - config - end + ConfigDB.delete(%{group: group, key: key, subkeys: params["subkeys"]}) %{"group" => group, "key" => key, "value" => value} -> - with {:ok, config} <- - ConfigDB.update_or_create(%{group: group, key: key, value: value}) do - config - end + ConfigDB.update_or_create(%{group: group, key: key, value: value}) end) - |> Enum.reject(&is_nil(&1)) - |> Enum.map(fn config -> + |> Enum.split_with(fn result -> elem(result, 0) == :error end) + + {deleted, updated} = + results + |> Enum.map(fn {:ok, config} -> Map.put(config, :db, ConfigDB.get_db_keys(config)) end) + |> Enum.split_with(fn config -> + Ecto.get_meta(config, :state) == :deleted + end) - Pleroma.Config.TransferTask.load_and_update_env() + Pleroma.Config.TransferTask.load_and_update_env(deleted) Mix.Tasks.Pleroma.Config.run([ "migrate_from_db", |