Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Controller
- ====
- def register(conn, %{"email" => email, "login" => login, "password" => password} = params) do
- changeset = App.User.changeset(%App.User{}, %{email: email, login: login, plain_password: password})
- case Registration.create(changeset, App.Repo) do
- {:ok, changeset} ->
- render conn, "register.json", user: %App.User{email: email, login: login}
- {:error, changeset} ->
- render(conn, App.ChangesetView, "error.json", changeset: changeset)
- end
- end
- View
- ====
- defmodule App.ChangesetView do
- use App.Web, :view
- @doc """
- Traverses and translates changeset errors.
- See `Ecto.Changeset.traverse_errors/2` and
- `ApiTest.ErrorHelpers.translate_error/1` for more details.
- """
- def translate_errors(changeset) do
- Ecto.Changeset.traverse_errors(changeset, &translate_error/1)
- end
- def render("error.json", %{changeset: changeset}) do
- # When encoded, the changeset returns its errors
- # as a JSON object. So we just pass it forward.
- %{errors: translate_errors(changeset)}
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement