summaryrefslogtreecommitdiff
path: root/lib/silmataivas_web/controllers/fallback_controller.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/silmataivas_web/controllers/fallback_controller.ex')
-rw-r--r--lib/silmataivas_web/controllers/fallback_controller.ex24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/silmataivas_web/controllers/fallback_controller.ex b/lib/silmataivas_web/controllers/fallback_controller.ex
new file mode 100644
index 0000000..f315110
--- /dev/null
+++ b/lib/silmataivas_web/controllers/fallback_controller.ex
@@ -0,0 +1,24 @@
+defmodule SilmataivasWeb.FallbackController do
+ @moduledoc """
+ Translates controller action results into valid `Plug.Conn` responses.
+
+ See `Phoenix.Controller.action_fallback/1` for more details.
+ """
+ use SilmataivasWeb, :controller
+
+ # This clause handles errors returned by Ecto's insert/update/delete.
+ def call(conn, {:error, %Ecto.Changeset{} = changeset}) do
+ conn
+ |> put_status(:unprocessable_entity)
+ |> put_view(json: SilmataivasWeb.ChangesetJSON)
+ |> render(:error, changeset: changeset)
+ end
+
+ # This clause is an example of how to handle resources that cannot be found.
+ def call(conn, {:error, :not_found}) do
+ conn
+ |> put_status(:not_found)
+ |> put_view(html: SilmataivasWeb.ErrorHTML, json: SilmataivasWeb.ErrorJSON)
+ |> render(:"404")
+ end
+end