2020-01-26 20:36:50 +00:00
|
|
|
defmodule Mobilizon.Web.ErrorView do
|
2018-01-14 16:56:50 +00:00
|
|
|
@moduledoc """
|
|
|
|
View for errors
|
|
|
|
"""
|
2020-01-26 20:36:50 +00:00
|
|
|
use Mobilizon.Web, :view
|
2017-12-08 08:58:14 +00:00
|
|
|
|
|
|
|
def render("404.html", _assigns) do
|
2019-09-18 15:32:37 +00:00
|
|
|
with {:ok, index_content} <- File.read(index_file_path()) do
|
|
|
|
{:safe, index_content}
|
|
|
|
end
|
2017-12-08 08:58:14 +00:00
|
|
|
end
|
|
|
|
|
2019-05-02 11:04:21 +00:00
|
|
|
def render("404.json", _assigns) do
|
|
|
|
%{msg: "Resource not found"}
|
|
|
|
end
|
|
|
|
|
2019-09-18 15:32:37 +00:00
|
|
|
def render("404.activity-json", _assigns) do
|
|
|
|
%{msg: "Resource not found"}
|
|
|
|
end
|
|
|
|
|
|
|
|
def render("404.ics", _assigns) do
|
|
|
|
"Bad feed"
|
|
|
|
end
|
|
|
|
|
|
|
|
def render("404.atom", _assigns) do
|
|
|
|
"Bad feed"
|
|
|
|
end
|
|
|
|
|
2018-01-21 18:43:16 +00:00
|
|
|
def render("invalid_request.json", _assigns) do
|
|
|
|
%{errors: "Invalid request"}
|
|
|
|
end
|
|
|
|
|
2018-08-03 08:16:22 +00:00
|
|
|
def render("not_found.json", %{details: details}) do
|
|
|
|
%{
|
|
|
|
msg: "Resource not found",
|
2018-08-03 08:19:28 +00:00
|
|
|
details: details
|
2018-08-03 08:16:22 +00:00
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2017-12-08 08:58:14 +00:00
|
|
|
def render("500.html", _assigns) do
|
|
|
|
"Internal server error"
|
|
|
|
end
|
|
|
|
|
|
|
|
# In case no render clause matches or no
|
|
|
|
# template is found, let's render it as 500
|
2019-03-05 09:13:19 +00:00
|
|
|
def template_not_found(template, assigns) do
|
|
|
|
require Logger
|
2019-09-18 15:32:37 +00:00
|
|
|
Logger.warn("Template #{inspect(template)} not found")
|
2018-07-27 08:45:35 +00:00
|
|
|
render("500.html", assigns)
|
2017-12-08 08:58:14 +00:00
|
|
|
end
|
2019-09-18 15:32:37 +00:00
|
|
|
|
|
|
|
defp index_file_path() do
|
|
|
|
Path.join(Application.app_dir(:mobilizon, "priv/static"), "index.html")
|
|
|
|
end
|
2017-12-08 08:58:14 +00:00
|
|
|
end
|