From fbb65e77c0df147986315be1c9327471743d24fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Herg=C3=A8s?= Date: Tue, 12 Aug 2025 20:27:23 +0200 Subject: [PATCH] feat(user): display list and fix changeset --- lib/learning_phoenix/user.ex | 13 +++---------- .../controllers/user_controller.ex | 5 ++++- .../controllers/user_html/index.html.heex | 9 +++++++++ 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/lib/learning_phoenix/user.ex b/lib/learning_phoenix/user.ex index 9fc347b..0d230c3 100644 --- a/lib/learning_phoenix/user.ex +++ b/lib/learning_phoenix/user.ex @@ -12,20 +12,13 @@ defmodule LearningPhoenix.User do @doc false def changeset(user, attrs) do + IO.puts("called") user |> cast(attrs, [:name, :email, :password]) |> validate_required([:name, :email, :password]) |> validate_length(:name, min: 2) |> validate_length(:name, max: 30) - |> valid_email(:email) - end - - def valid_email(changeset, field) do - value = get_field(changeset, field) - if value =~ "@" do - changeset - else - add_error(changeset, field, "invalid email") - end + |> validate_format(:email, ~r/.+@.+\.[a-z]+/) + |> unique_constraint(:email) end end diff --git a/lib/learning_phoenix_web/controllers/user_controller.ex b/lib/learning_phoenix_web/controllers/user_controller.ex index 138ee5a..fb11a46 100644 --- a/lib/learning_phoenix_web/controllers/user_controller.ex +++ b/lib/learning_phoenix_web/controllers/user_controller.ex @@ -1,8 +1,11 @@ defmodule LearningPhoenixWeb.UserController do use LearningPhoenixWeb, :controller + alias LearningPhoenix.{Repo, User} def index(conn, _params) do - render(conn, :index) + conn + |> assign(:test, Repo.all(User)) + |> render(:index) end def edit(conn, _params) do diff --git a/lib/learning_phoenix_web/controllers/user_html/index.html.heex b/lib/learning_phoenix_web/controllers/user_html/index.html.heex index d5e1e6b..0d1eea6 100644 --- a/lib/learning_phoenix_web/controllers/user_html/index.html.heex +++ b/lib/learning_phoenix_web/controllers/user_html/index.html.heex @@ -6,4 +6,13 @@

Cette page contient la liste de tous les utilisateurs

+
+ <%= for user <- @test do %> +
+

Hello {user.name}!

+

Your email is {user.email}

+

And your hashed password is {user.password}.

+
+ <% end %> +