projects
/
akkoma
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
42b4b95
)
Preload `/api/pleroma/frontend_configurations`, fixes #1932
author
Alex Gleason
<alex@alexgleason.me>
Mon, 12 Oct 2020 23:49:37 +0000
(18:49 -0500)
committer
Alex Gleason
<alex@alexgleason.me>
Mon, 12 Oct 2020 23:49:37 +0000
(18:49 -0500)
lib/pleroma/web/preload/instance.ex
patch
|
blob
|
history
lib/pleroma/web/twitter_api/controllers/util_controller.ex
patch
|
blob
|
history
lib/pleroma/web/twitter_api/views/util_view.ex
patch
|
blob
|
history
test/web/preload/instance_test.exs
patch
|
blob
|
history
diff --git
a/lib/pleroma/web/preload/instance.ex
b/lib/pleroma/web/preload/instance.ex
index 50d1f3382fe66b7192a5ba0781d70ec8c95e3b31..cc6f8cf99804d099e08adfd3eb43bac33eab59c5 100644
(file)
--- a/
lib/pleroma/web/preload/instance.ex
+++ b/
lib/pleroma/web/preload/instance.ex
@@
-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.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"
@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
@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_info_tag()
|> build_panel_tag()
|> build_nodeinfo_tag()
+ |> build_fe_config_tag()
end
defp build_info_tag(acc) do
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
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
end
diff --git
a/lib/pleroma/web/twitter_api/controllers/util_controller.ex
b/lib/pleroma/web/twitter_api/controllers/util_controller.ex
index 70b0fbd546f32ddaeb62a3110b83c7d81d5dfd94..6d827846d1a9bca97bd54c2393982347c6b98b2f 100644
(file)
--- a/
lib/pleroma/web/twitter_api/controllers/util_controller.ex
+++ b/
lib/pleroma/web/twitter_api/controllers/util_controller.ex
@@
-74,11
+74,7
@@
defmodule Pleroma.Web.TwitterAPI.UtilController do
end
def frontend_configurations(conn, _params) 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
end
def emoji(conn, _params) do
diff --git
a/lib/pleroma/web/twitter_api/views/util_view.ex
b/lib/pleroma/web/twitter_api/views/util_view.ex
index d3bdb4f6230662f7cf62e57672dc352729ebc145..98eea1d182f019cc82cb270131589cc76ee792c6 100644
(file)
--- a/
lib/pleroma/web/twitter_api/views/util_view.ex
+++ b/
lib/pleroma/web/twitter_api/views/util_view.ex
@@
-5,6
+5,7
@@
defmodule Pleroma.Web.TwitterAPI.UtilView do
use Pleroma.Web, :view
import Phoenix.HTML.Form
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
alias Pleroma.Web
def status_net_config(instance) do
@@
-19,4
+20,9
@@
defmodule Pleroma.Web.TwitterAPI.UtilView do
</config>
"""
end
</config>
"""
end
+
+ def render("frontend_configurations.json", _) do
+ Config.get(:frontend_configurations, %{})
+ |> Enum.into(%{})
+ end
end
end
diff --git
a/test/web/preload/instance_test.exs
b/test/web/preload/instance_test.exs
index a46f2831248626a0340dfbe0865e3f7168701d6a..8493f2a94a76b3f7cbe61d32292f160c8ad03949 100644
(file)
--- a/
test/web/preload/instance_test.exs
+++ b/
test/web/preload/instance_test.exs
@@
-45,4
+45,12
@@
defmodule Pleroma.Web.Preload.Providers.InstanceTest do
assert metadata.private == false
assert metadata.suggestions == %{enabled: false}
end
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
end