defmodule PlausibleWeb.ErrorView do use PlausibleWeb, :view def render("500.json", _assigns) do %{ status: 500, message: "Server error" } end def render("404.html", assigns) do render( "error.html", Map.merge( %{ layout: false, status: 404, message: "Oops! There's nothing here" }, assigns ) ) end def render("500.html", assigns) do case Sentry.get_last_event_id_and_source() do {event_id, :plug} when is_binary(event_id) -> current_user = assigns[:current_user] opts = %{ eventId: event_id, user: %{ name: current_user && current_user.name, email: current_user && current_user.email } } |> Jason.encode!() ~E""" """ _ -> render( "error.html", Map.merge( %{ layout: false, status: 500, message: "Oops! Looks like we're having server issues" }, assigns ) ) end end def template_not_found(template, assigns) do status = String.trim_trailing(template, ".html") render( "error.html", Map.merge( %{ layout: false, status: status, message: Phoenix.Controller.status_message_from_template(template) }, assigns ) ) end end