aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/controller/frontend_controller.ex
diff options
context:
space:
mode:
authorRoman Chvanikov <chvanikoff@pm.me>2020-07-30 21:43:11 +0300
committerRoman Chvanikov <chvanikoff@pm.me>2020-07-30 21:46:00 +0300
commit5d5287989a8639d23a35d386294567efdde5bd6d (patch)
treea8faf938254f9a24eda4f376e6b32282e1b4f8a8 /lib/pleroma/web/controller/frontend_controller.ex
parentef12eb5e12ba34e78428c0f070efe328d94587ac (diff)
downloadpleroma-5d5287989a8639d23a35d386294567efdde5bd6d.tar.gz
Migrate Redirect controller
Diffstat (limited to 'lib/pleroma/web/controller/frontend_controller.ex')
-rw-r--r--lib/pleroma/web/controller/frontend_controller.ex38
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/pleroma/web/controller/frontend_controller.ex b/lib/pleroma/web/controller/frontend_controller.ex
index fc717fa29..5fa4e6391 100644
--- a/lib/pleroma/web/controller/frontend_controller.ex
+++ b/lib/pleroma/web/controller/frontend_controller.ex
@@ -4,6 +4,7 @@ defmodule Pleroma.Web.FrontendController do
defmacro __using__(_opts) do
quote do
require Logger
+ alias Pleroma.User
def fallback(conn, _params) do
conn
@@ -11,6 +12,30 @@ defmodule Pleroma.Web.FrontendController do
|> text("Not found")
end
+ def registration_page(conn, params) do
+ redirector(conn, params)
+ end
+
+ def api_not_implemented(conn, _params) do
+ conn
+ |> put_status(404)
+ |> json(%{error: "Not implemented"})
+ end
+
+ def empty(conn, _params) do
+ conn
+ |> put_status(204)
+ |> text("")
+ end
+
+ def redirector(conn, _params) do
+ {:ok, path} = Pleroma.Frontend.file_path("index.html")
+
+ conn
+ |> put_resp_content_type("text/html")
+ |> send_file(conn.status || 200, path)
+ end
+
def redirector_with_preload(conn, %{"path" => ["pleroma", "admin"]}) do
redirect(conn, to: "/pleroma/admin/")
end
@@ -19,6 +44,19 @@ defmodule Pleroma.Web.FrontendController do
index_with_generated_data(conn, params, [:preload])
end
+ def redirector_with_meta(conn, %{"maybe_nickname_or_id" => maybe_nickname_or_id} = params) do
+ with %User{} = user <- User.get_cached_by_nickname_or_id(maybe_nickname_or_id) do
+ redirector_with_meta(conn, %{user: user})
+ else
+ nil ->
+ redirector(conn, params)
+ end
+ end
+
+ def redirector_with_meta(conn, params) do
+ index_with_generated_data(conn, params, [:metadata, :preload])
+ end
+
def index_with_generated_data(conn, params, generators) do
{:ok, path} = Pleroma.Frontend.file_path("index.html")
{:ok, index_content} = File.read(path)