diff options
author | Roman Chvanikov <chvanikoff@pm.me> | 2020-07-11 00:03:54 +0300 |
---|---|---|
committer | Roman Chvanikov <chvanikoff@pm.me> | 2020-07-11 00:03:54 +0300 |
commit | 1f1ccdc6e5c0c1d09904f3f0fe454d1432da7131 (patch) | |
tree | 467f0ad253b44007cdaa3dc304b5319ca1282b96 /lib/pleroma/web/controllers/frontend/default_controller.ex | |
parent | bb693768ff6f6afcb0b888b5a39100c6ff41f6bf (diff) | |
download | pleroma-1f1ccdc6e5c0c1d09904f3f0fe454d1432da7131.tar.gz |
Partially fix tests
Diffstat (limited to 'lib/pleroma/web/controllers/frontend/default_controller.ex')
-rw-r--r-- | lib/pleroma/web/controllers/frontend/default_controller.ex | 57 |
1 files changed, 56 insertions, 1 deletions
diff --git a/lib/pleroma/web/controllers/frontend/default_controller.ex b/lib/pleroma/web/controllers/frontend/default_controller.ex index fef748a19..fe37b2cdb 100644 --- a/lib/pleroma/web/controllers/frontend/default_controller.ex +++ b/lib/pleroma/web/controllers/frontend/default_controller.ex @@ -7,6 +7,8 @@ defmodule Pleroma.Web.Frontend.DefaultController do quote do import Pleroma.Frontend, only: [fe_file_path: 1, fe_file_path: 2] + require Logger + def index(conn, _params) do status = conn.status || 200 @@ -17,6 +19,40 @@ defmodule Pleroma.Web.Frontend.DefaultController do |> send_file(status, index_file_path) end + def index_with_meta(conn, params) do + {:ok, path} = fe_file_path("index.html") + {:ok, index_content} = File.read(path) + + tags = + try do + Pleroma.Web.Metadata.build_tags(params) + rescue + e -> + Logger.error( + "Metadata rendering for #{conn.request_path} failed.\n" <> + Exception.format(:error, e, __STACKTRACE__) + ) + + "" + end + + preloads = preload_data(conn, params) + + response = String.replace(index_content, "<!--server-generated-meta-->", tags <> preloads) + + html(conn, response) + end + + def index_with_preload(conn, params) do + {:ok, path} = fe_file_path("index.html") + {:ok, index_content} = File.read(path) + preloads = preload_data(conn, params) + + response = String.replace(index_content, "<!--server-generated-meta-->", preloads) + + html(conn, response) + end + def api_not_implemented(conn, _params) do conn |> put_status(404) @@ -35,7 +71,26 @@ defmodule Pleroma.Web.Frontend.DefaultController do |> text("Not found") end - defoverridable index: 2, api_not_implemented: 2, empty: 2, fallback: 2 + defp preload_data(conn, params) do + try do + Pleroma.Web.Preload.build_tags(conn, params) + rescue + e -> + Logger.error( + "Preloading for #{conn.request_path} failed.\n" <> + Exception.format(:error, e, __STACKTRACE__) + ) + + "" + end + end + + defoverridable index: 2, + index_with_meta: 2, + index_with_preload: 2, + api_not_implemented: 2, + empty: 2, + fallback: 2 end end end |