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.
61 lines
1.8 KiB
Elixir
61 lines
1.8 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.ConversationOperation do
|
|
alias OpenApiSpex.Operation
|
|
alias OpenApiSpex.Schema
|
|
alias Pleroma.Web.ApiSpec.Schemas.Conversation
|
|
alias Pleroma.Web.ApiSpec.Schemas.FlakeID
|
|
|
|
import Pleroma.Web.ApiSpec.Helpers
|
|
|
|
def open_api_operation(action) do
|
|
operation = String.to_existing_atom("#{action}_operation")
|
|
apply(__MODULE__, operation, [])
|
|
end
|
|
|
|
def index_operation do
|
|
%Operation{
|
|
tags: ["Conversations"],
|
|
summary: "List of conversations",
|
|
security: [%{"oAuth" => ["read:statuses"]}],
|
|
operationId: "ConversationController.index",
|
|
parameters: [
|
|
Operation.parameter(
|
|
:recipients,
|
|
:query,
|
|
%Schema{type: :array, items: FlakeID},
|
|
"Only return conversations with the given recipients (a list of user ids)"
|
|
)
|
|
| pagination_params()
|
|
],
|
|
responses: %{
|
|
200 =>
|
|
Operation.response("Array of Conversation", "application/json", %Schema{
|
|
type: :array,
|
|
items: Conversation,
|
|
example: [Conversation.schema().example]
|
|
})
|
|
}
|
|
}
|
|
end
|
|
|
|
def mark_as_read_operation do
|
|
%Operation{
|
|
tags: ["Conversations"],
|
|
summary: "Mark conversation as read",
|
|
operationId: "ConversationController.mark_as_read",
|
|
parameters: [
|
|
Operation.parameter(:id, :path, :string, "Conversation ID",
|
|
example: "123",
|
|
required: true
|
|
)
|
|
],
|
|
security: [%{"oAuth" => ["write:conversations"]}],
|
|
responses: %{
|
|
200 => Operation.response("Conversation", "application/json", Conversation)
|
|
}
|
|
}
|
|
end
|
|
end
|