Skip to content
Snippets Groups Projects
Commit e2564971 authored by kerdo's avatar kerdo
Browse files

Merge branch 'fr-06-update-profile' into 'main'

update profile forms

See merge request !8
parents fcb830f1 683a423d
No related branches found
Tags v3.0
1 merge request!8update profile forms
Pipeline #43956 passed
......@@ -16,4 +16,5 @@ defmodule WhiteBreadConfig do
suite name: "Password Change Features",
context: PasswordChangeContext,
feature_paths: ["features/password_change.feature"]
end
defmodule PropTrackrWeb.UpdateController do
use PropTrackrWeb, :controller
alias PropTrackr.Repo
alias PropTrackr.Accounts.User
alias PropTrackr.Authentication
def index(conn, _params) do
user_id = get_session(conn, :user_id)
user = Repo.get(User, user_id)
changeset = User.changeset(user, %{})
render(conn, "index.html", changeset: changeset)
end
def create(conn, %{"user" => user_params}) do
# changeset = User.changeset(%User{}, user_params)
user_id = get_session(conn, :user_id)
user = Repo.get(User, user_id)
changeset = User.changeset(user, user_params)
case Repo.update(changeset) do
{:ok, _user} ->
conn
|> put_flash(:info, "User updated successfully.")
|> redirect(to: ~p"/")
{:error, %Ecto.Changeset{} = changeset} ->
render(conn, "index.html", user: user, changeset: changeset)
end
end
end
defmodule PropTrackrWeb.UpdateHTML do
use PropTrackrWeb, :html
embed_templates "update_html/*"
end
<.header>
Update your user
</.header>
<.simple_form :let={f} for={@changeset} action={~p"/me/details"} method="POST">
<.input field={f[:name]} type="text" required label="Name"/>
<.input field={f[:surname]} type="text" required label="Surname" />
<.input field={f[:birth_date]} type="text" required label="Birth-date" />
<.input field={f[:phone_number]} type="text" required label="Phone" />
<.input field={f[:bio]} type="text" required label="Bio" />
<.input field={f[:email]} type="text" required label="Email" />
<:actions>
<.button id="update_profile">Update Profile</.button>
</:actions>
</.simple_form>
\ No newline at end of file
......@@ -24,6 +24,7 @@ defmodule PropTrackrWeb.Router do
resources "/login", LoginController, only: [:index, :create]
resources "/logout", LogoutController
resources "/me/password", PasswordController, only: [:index, :create]
resources "/me/details", UpdateController
end
# Other scopes may use custom stacks.
......
defmodule PropTrackrWeb.UpdateControllerTest do
use PropTrackrWeb.ConnCase
alias PropTrackr.Accounts.User
alias PropTrackr.Repo
@user_credentials %{email: "test.user@gmail.com", password: "testing", new_password: "new_password"}
setup do
user = %User{
name: "Test",
surname: "User",
birth_date: "2000-01-01",
phone_number: "000",
bio: "Yo",
email: "test.user@gmail.com",
password: "testing",
confirm_password: "testing",
}
Repo.insert!(user)
:ok
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment