philomena/lib/philomena_web/controllers/notification_controller.ex
2019-11-15 22:50:58 -05:00

33 lines
No EOL
860 B
Elixir

defmodule PhilomenaWeb.NotificationController do
use PhilomenaWeb, :controller
alias Philomena.Notifications.{UnreadNotification, Notification}
alias Philomena.Polymorphic
alias Philomena.Repo
import Ecto.Query
def index(conn, _params) do
user = conn.assigns.current_user
notifications =
from n in Notification,
join: un in UnreadNotification, on: un.notification_id == n.id,
where: un.user_id == ^user.id
notifications =
notifications
|> Repo.paginate(conn.assigns.scrivener)
entries =
notifications.entries
|> Polymorphic.load_polymorphic(
actor: [actor_id: :actor_type],
actor_child: [actor_child_id: :actor_child_type]
)
notifications =
%{notifications | entries: entries}
render(conn, "index.html", notifications: notifications)
end
end