diff --git a/lib/proptrackr_web/controllers/profile_controller.ex b/lib/proptrackr_web/controllers/profile_controller.ex new file mode 100644 index 0000000000000000000000000000000000000000..73d1c19a9b9287b1b2b7c0641a5031b6ff831ae5 --- /dev/null +++ b/lib/proptrackr_web/controllers/profile_controller.ex @@ -0,0 +1,19 @@ +defmodule PropTrackrWeb.ProfileController do + use PropTrackrWeb, :controller + + import PropTrackr.Authentication + alias PropTrackr.Repo + alias PropTrackr.Accounts.User + + def index(conn, _params) do + user_id = get_session(conn, :user_id) + if user_id == nil do + conn + |> put_flash(:error, "You are not logged!") + |> redirect(to: ~p"/login") + else + user = Repo.get(User, user_id) + render(conn, "index.html", user: user) + end + end +end diff --git a/lib/proptrackr_web/controllers/profile_html.ex b/lib/proptrackr_web/controllers/profile_html.ex new file mode 100644 index 0000000000000000000000000000000000000000..63f3ea97497455cc6a293b6bc29ae3d58d5a2fd4 --- /dev/null +++ b/lib/proptrackr_web/controllers/profile_html.ex @@ -0,0 +1,5 @@ +defmodule PropTrackrWeb.ProfileHTML do + use PropTrackrWeb, :html + + embed_templates "profile_html/*" +end diff --git a/lib/proptrackr_web/controllers/profile_html/index.html.heex b/lib/proptrackr_web/controllers/profile_html/index.html.heex new file mode 100644 index 0000000000000000000000000000000000000000..81d464a4d62138cb885551241a498959f1a3553a --- /dev/null +++ b/lib/proptrackr_web/controllers/profile_html/index.html.heex @@ -0,0 +1,20 @@ +<.header> + Your profile + <:actions> + <.link href={~p"/me/details"}> + <.button>Edit details</.button> + </.link> + <.link href={~p"/me/delete"}> + <.button class="bg-red-700 hover:bg-red-500">Delete account</.button> + </.link> + </:actions> +</.header> + +<p class="italic"><%= @user.name %> <%= @user.surname %></p> + +<p><span class="bold">First name:</span> <%= @user.name %></p> +<p><span class="bold">Last name:</span> <%= @user.surname %></p> +<p><span class="bold">Birth date:</span> <%= @user.birth_date %></p> +<p><span class="bold">Phone number:</span> <%= @user.phone_number %></p> +<p><span class="bold">Email:</span> <%= @user.email %></p> +<p><span class="bold">Bio:</span> <%= @user.bio %></p> diff --git a/lib/proptrackr_web/router.ex b/lib/proptrackr_web/router.ex index 353a880299d6b5411119cfb2a0acb63346ae824c..8ac12cda768733c538f6e6f9add1f4dce1fdabfd 100644 --- a/lib/proptrackr_web/router.ex +++ b/lib/proptrackr_web/router.ex @@ -23,8 +23,10 @@ defmodule PropTrackrWeb.Router do resources "/register", RegisterController, only: [:index, :create] resources "/login", LoginController, only: [:index, :create] resources "/logout", LogoutController + + resources "/me", ProfileController, only: [:index] + resources "/me/details", UpdateController, only: [:index, :create] resources "/me/password", PasswordController, only: [:index, :create] - resources "/me/details", UpdateController end # Other scopes may use custom stacks.