philomena/lib/philomena_web/controllers/notification_controller.ex

33 lines
860 B
Elixir
Raw Normal View History

2019-11-16 04:50:58 +01:00
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