philomena/lib/philomena_web/controllers/profile_controller.ex
2019-11-30 21:22:05 -05:00

41 lines
1 KiB
Elixir

defmodule PhilomenaWeb.ProfileController do
use PhilomenaWeb, :controller
alias PhilomenaWeb.ImageLoader
alias Philomena.Users.User
alias Philomena.Interactions
plug :load_and_authorize_resource, model: User, only: :show, id_field: "slug", preload: [awards: :badge, public_links: :tag]
def show(conn, _params) do
current_user = conn.assigns.current_user
user = conn.assigns.user
{:ok, recent_uploads} =
ImageLoader.search_string(
conn,
"uploader_id:#{user.id}",
pagination: %{page_number: 1, page_size: 6}
)
{:ok, recent_faves} =
ImageLoader.search_string(
conn,
"faved_by_id:#{user.id}",
pagination: %{page_number: 1, page_size: 6}
)
interactions =
Interactions.user_interactions([recent_uploads, recent_faves], current_user)
render(
conn,
"show.html",
user: user,
interactions: interactions,
recent_uploads: recent_uploads,
recent_faves: recent_faves,
layout_class: "layout--wide"
)
end
end