From 1f1ccdc6e5c0c1d09904f3f0fe454d1432da7131 Mon Sep 17 00:00:00 2001 From: Roman Chvanikov Date: Sat, 11 Jul 2020 00:03:54 +0300 Subject: Partially fix tests --- .../web/controllers/frontend/default_controller.ex | 57 +++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) (limited to 'lib/pleroma/web/controllers/frontend/default_controller.ex') 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, "", 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, "", 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 -- cgit v1.2.3