f582ad42ece30d76d3d9887e9ced9b3a3d961174
[anni] / lib / pleroma / web / admin_api / views / config_view.ex
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.AdminAPI.ConfigView do
6   use Pleroma.Web, :view
7
8   alias Pleroma.ConfigDB
9
10   def render("index.json", %{configs: configs} = params) do
11     %{
12       configs: render_many(configs, __MODULE__, "show.json", as: :config),
13       need_reboot: params[:need_reboot]
14     }
15   end
16
17   def render("show.json", %{config: config}) do
18     map = %{
19       key: ConfigDB.to_json_types(config.key),
20       group: ConfigDB.to_json_types(config.group),
21       value: ConfigDB.to_json_types(config.value)
22     }
23
24     if config.db != [] do
25       Map.put(map, :db, config.db)
26     else
27       map
28     end
29   end
30 end