feat(user): display list and fix changeset
This commit is contained in:
parent
f1c1ca6d14
commit
fbb65e77c0
3 changed files with 16 additions and 11 deletions
|
@ -12,20 +12,13 @@ defmodule LearningPhoenix.User do
|
||||||
|
|
||||||
@doc false
|
@doc false
|
||||||
def changeset(user, attrs) do
|
def changeset(user, attrs) do
|
||||||
|
IO.puts("called")
|
||||||
user
|
user
|
||||||
|> cast(attrs, [:name, :email, :password])
|
|> cast(attrs, [:name, :email, :password])
|
||||||
|> validate_required([:name, :email, :password])
|
|> validate_required([:name, :email, :password])
|
||||||
|> validate_length(:name, min: 2)
|
|> validate_length(:name, min: 2)
|
||||||
|> validate_length(:name, max: 30)
|
|> validate_length(:name, max: 30)
|
||||||
|> valid_email(:email)
|
|> validate_format(:email, ~r/.+@.+\.[a-z]+/)
|
||||||
end
|
|> unique_constraint(:email)
|
||||||
|
|
||||||
def valid_email(changeset, field) do
|
|
||||||
value = get_field(changeset, field)
|
|
||||||
if value =~ "@" do
|
|
||||||
changeset
|
|
||||||
else
|
|
||||||
add_error(changeset, field, "invalid email")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
defmodule LearningPhoenixWeb.UserController do
|
defmodule LearningPhoenixWeb.UserController do
|
||||||
use LearningPhoenixWeb, :controller
|
use LearningPhoenixWeb, :controller
|
||||||
|
alias LearningPhoenix.{Repo, User}
|
||||||
|
|
||||||
def index(conn, _params) do
|
def index(conn, _params) do
|
||||||
render(conn, :index)
|
conn
|
||||||
|
|> assign(:test, Repo.all(User))
|
||||||
|
|> render(:index)
|
||||||
end
|
end
|
||||||
|
|
||||||
def edit(conn, _params) do
|
def edit(conn, _params) do
|
||||||
|
|
|
@ -6,4 +6,13 @@
|
||||||
<p class="text-xl">
|
<p class="text-xl">
|
||||||
Cette page contient la liste de tous les utilisateurs
|
Cette page contient la liste de tous les utilisateurs
|
||||||
</p>
|
</p>
|
||||||
|
<div class="flex flex-col gap-4 justify-center justify-items-center">
|
||||||
|
<%= for user <- @test do %>
|
||||||
|
<div class="flex flex-col gap-2">
|
||||||
|
<p>Hello {user.name}!</p>
|
||||||
|
<p>Your email is {user.email}</p>
|
||||||
|
<p>And your hashed password is {user.password}.</p>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue