Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. Controller
  2. ====
  3. def register(conn, %{"email" => email, "login" => login, "password" => password} = params) do
  4. changeset = App.User.changeset(%App.User{}, %{email: email, login: login, plain_password: password})
  5. case Registration.create(changeset, App.Repo) do
  6. {:ok, changeset} ->
  7. render conn, "register.json", user: %App.User{email: email, login: login}
  8. {:error, changeset} ->
  9. render(conn, App.ChangesetView, "error.json", changeset: changeset)
  10. end
  11. end
  12.  
  13. View
  14. ====
  15. defmodule App.ChangesetView do
  16. use App.Web, :view
  17.  
  18. @doc """
  19. Traverses and translates changeset errors.
  20. See `Ecto.Changeset.traverse_errors/2` and
  21. `ApiTest.ErrorHelpers.translate_error/1` for more details.
  22. """
  23. def translate_errors(changeset) do
  24. Ecto.Changeset.traverse_errors(changeset, &translate_error/1)
  25. end
  26.  
  27. def render("error.json", %{changeset: changeset}) do
  28. # When encoded, the changeset returns its errors
  29. # as a JSON object. So we just pass it forward.
  30. %{errors: translate_errors(changeset)}
  31. end
  32. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement