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.
96 lines
2.4 KiB
Elixir
96 lines
2.4 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.Admin.ChatOperation do
|
|
alias OpenApiSpex.Operation
|
|
alias Pleroma.Web.ApiSpec.Schemas.Chat
|
|
alias Pleroma.Web.ApiSpec.Schemas.ChatMessage
|
|
|
|
import Pleroma.Web.ApiSpec.Helpers
|
|
|
|
def open_api_operation(action) do
|
|
operation = String.to_existing_atom("#{action}_operation")
|
|
apply(__MODULE__, operation, [])
|
|
end
|
|
|
|
def delete_message_operation do
|
|
%Operation{
|
|
tags: ["Chat administration"],
|
|
summary: "Delete an individual chat message",
|
|
operationId: "AdminAPI.ChatController.delete_message",
|
|
parameters: [
|
|
Operation.parameter(:id, :path, :string, "The ID of the Chat"),
|
|
Operation.parameter(:message_id, :path, :string, "The ID of the message")
|
|
],
|
|
responses: %{
|
|
200 =>
|
|
Operation.response(
|
|
"The deleted ChatMessage",
|
|
"application/json",
|
|
ChatMessage
|
|
)
|
|
},
|
|
security: [
|
|
%{
|
|
"oAuth" => ["write:chats"]
|
|
}
|
|
]
|
|
}
|
|
end
|
|
|
|
def messages_operation do
|
|
%Operation{
|
|
tags: ["Chat administration"],
|
|
summary: "Get chat's messages",
|
|
operationId: "AdminAPI.ChatController.messages",
|
|
parameters:
|
|
[Operation.parameter(:id, :path, :string, "The ID of the Chat")] ++
|
|
pagination_params(),
|
|
responses: %{
|
|
200 =>
|
|
Operation.response(
|
|
"The messages in the chat",
|
|
"application/json",
|
|
Pleroma.Web.ApiSpec.ChatOperation.chat_messages_response()
|
|
)
|
|
},
|
|
security: [
|
|
%{
|
|
"oAuth" => ["read:chats"]
|
|
}
|
|
]
|
|
}
|
|
end
|
|
|
|
def show_operation do
|
|
%Operation{
|
|
tags: ["Chat administration"],
|
|
summary: "Create a chat",
|
|
operationId: "AdminAPI.ChatController.show",
|
|
parameters: [
|
|
Operation.parameter(
|
|
:id,
|
|
:path,
|
|
:string,
|
|
"The id of the chat",
|
|
required: true,
|
|
example: "1234"
|
|
)
|
|
],
|
|
responses: %{
|
|
200 =>
|
|
Operation.response(
|
|
"The existing chat",
|
|
"application/json",
|
|
Chat
|
|
)
|
|
},
|
|
security: [
|
|
%{
|
|
"oAuth" => ["read"]
|
|
}
|
|
]
|
|
}
|
|
end
|
|
end
|