Create real Views for all Controllers
[akkoma] / lib / pleroma / web / pleroma_api / controllers / notification_controller.ex
index 0b2f678c50212b46bdffb7711ae73cf5df47f3a9..bcb3a9ae18febbf14c86e1a3c50373ab965c0131 100644 (file)
@@ -1,20 +1,22 @@
 # Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Web.PleromaAPI.NotificationController do
   use Pleroma.Web, :controller
 
   alias Pleroma.Notification
-  alias Pleroma.Plugs.OAuthScopesPlug
 
   plug(Pleroma.Web.ApiSpec.CastAndValidate)
-  plug(OAuthScopesPlug, %{scopes: ["write:notifications"]} when action == :mark_as_read)
-  plug(:put_view, Pleroma.Web.MastodonAPI.NotificationView)
+
+  plug(
+    Pleroma.Web.Plugs.OAuthScopesPlug,
+    %{scopes: ["write:notifications"]} when action == :mark_as_read
+  )
 
   defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.PleromaNotificationOperation
 
-  def mark_as_read(%{assigns: %{user: user}} = conn, %{id: notification_id}) do
+  def mark_as_read(%{assigns: %{user: user}, body_params: %{id: notification_id}} = conn, _) do
     with {:ok, notification} <- Notification.read_one(user, notification_id) do
       render(conn, "show.json", notification: notification, for: user)
     else
@@ -25,7 +27,7 @@ defmodule Pleroma.Web.PleromaAPI.NotificationController do
     end
   end
 
-  def mark_as_read(%{assigns: %{user: user}} = conn, %{max_id: max_id}) do
+  def mark_as_read(%{assigns: %{user: user}, body_params: %{max_id: max_id}} = conn, _) do
     notifications =
       user
       |> Notification.set_read_up_to(max_id)