forked from AkkomaGang/akkoma
9fcff7851f
Too many changes in OpenAPI spec to describe each one, but basically it is tag fixes, bringing consitency to operation summaries and fixing some incorrect information.
49 lines
1.6 KiB
Elixir
49 lines
1.6 KiB
Elixir
# Pleroma: A lightweight social networking server
|
|
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
defmodule Pleroma.Web.ApiSpec.PleromaNotificationOperation do
|
|
alias OpenApiSpex.Operation
|
|
alias OpenApiSpex.Schema
|
|
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, [])
|
|
end
|
|
|
|
def mark_as_read_operation do
|
|
%Operation{
|
|
tags: ["Notifications"],
|
|
summary: "Mark notifications as read",
|
|
description: "Query parameters are mutually exclusive.",
|
|
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: %{
|
|
200 =>
|
|
Operation.response(
|
|
"A Notification or array of Notifications",
|
|
"application/json",
|
|
%Schema{
|
|
anyOf: [
|
|
%Schema{type: :array, items: NotificationOperation.notification()},
|
|
NotificationOperation.notification()
|
|
]
|
|
}
|
|
),
|
|
400 => Operation.response("Bad Request", "application/json", ApiError)
|
|
}
|
|
}
|
|
end
|
|
end
|