Fix notifications mark as read API
This commit is contained in:
parent
7b02bfca51
commit
ba106aa9c8
3 changed files with 20 additions and 9 deletions
|
|
@ -8,6 +8,8 @@ defmodule Pleroma.Web.ApiSpec.PleromaNotificationOperation do
|
|||
alias Pleroma.Web.ApiSpec.NotificationOperation
|
||||
alias Pleroma.Web.ApiSpec.Schemas.ApiError
|
||||
|
||||
import Pleroma.Web.ApiSpec.Helpers
|
||||
|
||||
def open_api_operation(action) do
|
||||
operation = String.to_existing_atom("#{action}_operation")
|
||||
apply(__MODULE__, operation, [])
|
||||
|
|
@ -17,10 +19,14 @@ defmodule Pleroma.Web.ApiSpec.PleromaNotificationOperation do
|
|||
%Operation{
|
||||
tags: ["Notifications"],
|
||||
summary: "Mark notifications as read. Query parameters are mutually exclusive.",
|
||||
parameters: [
|
||||
Operation.parameter(:id, :query, :string, "A single notification ID to read"),
|
||||
Operation.parameter(:max_id, :query, :string, "Read all notifications up to this id")
|
||||
],
|
||||
requestBody:
|
||||
request_body("Parameters", %Schema{
|
||||
type: :object,
|
||||
properties: %{
|
||||
id: %Schema{type: :integer, description: "A single notification ID to read"},
|
||||
max_id: %Schema{type: :integer, description: "Read all notifications up to this ID"}
|
||||
}
|
||||
}),
|
||||
security: [%{"oAuth" => ["write:notifications"]}],
|
||||
operationId: "PleromaAPI.NotificationController.mark_as_read",
|
||||
responses: %{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ defmodule Pleroma.Web.PleromaAPI.NotificationController do
|
|||
|
||||
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 +25,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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue