Explorar el Código

Merge branch 'preload-frontend-config' into 'develop'

Preload `/api/pleroma/frontend_configurations`, fixes #1932

Closes #1932

See merge request pleroma/pleroma!3075
1668/default-disable-prometheus
lain hace 3 años
padre
commit
5ed7eb1a26
Se han modificado 4 ficheros con 24 adiciones y 5 borrados
  1. +9
    -0
      lib/pleroma/web/preload/instance.ex
  2. +1
    -5
      lib/pleroma/web/twitter_api/controllers/util_controller.ex
  3. +6
    -0
      lib/pleroma/web/twitter_api/views/util_view.ex
  4. +8
    -0
      test/web/preload/instance_test.exs

+ 9
- 0
lib/pleroma/web/preload/instance.ex Ver fichero

@@ -7,11 +7,13 @@ defmodule Pleroma.Web.Preload.Providers.Instance do
alias Pleroma.Web.MastodonAPI.InstanceView
alias Pleroma.Web.Nodeinfo.Nodeinfo
alias Pleroma.Web.Preload.Providers.Provider
alias Pleroma.Web.TwitterAPI.UtilView

@behaviour Provider
@instance_url "/api/v1/instance"
@panel_url "/instance/panel.html"
@nodeinfo_url "/nodeinfo/2.0.json"
@fe_config_url "/api/pleroma/frontend_configurations"

@impl Provider
def generate_terms(_params) do
@@ -19,6 +21,7 @@ defmodule Pleroma.Web.Preload.Providers.Instance do
|> build_info_tag()
|> build_panel_tag()
|> build_nodeinfo_tag()
|> build_fe_config_tag()
end

defp build_info_tag(acc) do
@@ -47,4 +50,10 @@ defmodule Pleroma.Web.Preload.Providers.Instance do
Map.put(acc, @nodeinfo_url, nodeinfo_data)
end
end

defp build_fe_config_tag(acc) do
fe_data = UtilView.render("frontend_configurations.json", %{})

Map.put(acc, @fe_config_url, fe_data)
end
end

+ 1
- 5
lib/pleroma/web/twitter_api/controllers/util_controller.ex Ver fichero

@@ -74,11 +74,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
end

def frontend_configurations(conn, _params) do
config =
Config.get(:frontend_configurations, %{})
|> Enum.into(%{})

json(conn, config)
render(conn, "frontend_configurations.json")
end

def emoji(conn, _params) do


+ 6
- 0
lib/pleroma/web/twitter_api/views/util_view.ex Ver fichero

@@ -5,6 +5,7 @@
defmodule Pleroma.Web.TwitterAPI.UtilView do
use Pleroma.Web, :view
import Phoenix.HTML.Form
alias Pleroma.Config
alias Pleroma.Web

def status_net_config(instance) do
@@ -19,4 +20,9 @@ defmodule Pleroma.Web.TwitterAPI.UtilView do
</config>
"""
end

def render("frontend_configurations.json", _) do
Config.get(:frontend_configurations, %{})
|> Enum.into(%{})
end
end

+ 8
- 0
test/web/preload/instance_test.exs Ver fichero

@@ -45,4 +45,12 @@ defmodule Pleroma.Web.Preload.Providers.InstanceTest do
assert metadata.private == false
assert metadata.suggestions == %{enabled: false}
end

test "it renders the frontend configurations", %{
"/api/pleroma/frontend_configurations" => fe_configs
} do
assert %{
pleroma_fe: %{background: "/images/city.jpg", logo: "/static/logo.png"}
} = fe_configs
end
end

Cargando…
Cancelar
Guardar