defmodule Pleroma.Web.ApiSpec.ChatOperation do
alias OpenApiSpex.Operation
alias OpenApiSpex.Schema
- alias Pleroma.Web.ApiSpec.Helpers
alias Pleroma.Web.ApiSpec.Schemas.ChatMessageCreateRequest
alias Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse
alias Pleroma.Web.ApiSpec.Schemas.ChatResponse
+ import Pleroma.Web.ApiSpec.Helpers
+
@spec open_api_operation(atom) :: Operation.t()
def open_api_operation(action) do
operation = String.to_existing_atom("#{action}_operation")
tags: ["chat"],
summary: "Get a list of chats that you participated in",
operationId: "ChatController.index",
- parameters: [
- Operation.parameter(:limit, :query, :integer, "How many results to return", example: 20),
- Operation.parameter(:min_id, :query, :string, "Return only chats after this id"),
- Operation.parameter(:max_id, :query, :string, "Return only chats before this id")
- ],
+ parameters: pagination_params(),
responses: %{
200 => Operation.response("The chats of the user", "application/json", chats_response())
},
tags: ["chat"],
summary: "Get the most recent messages of the chat",
operationId: "ChatController.messages",
- parameters: [
- Operation.parameter(:id, :path, :string, "The ID of the Chat"),
- Operation.parameter(:limit, :query, :integer, "How many results to return", example: 20),
- Operation.parameter(:min_id, :query, :string, "Return only messages after this id"),
- Operation.parameter(:max_id, :query, :string, "Return only messages before this id")
- ],
+ parameters:
+ [Operation.parameter(:id, :path, :string, "The ID of the Chat")] ++
+ pagination_params(),
responses: %{
200 =>
Operation.response(
parameters: [
Operation.parameter(:id, :path, :string, "The ID of the Chat")
],
- requestBody: Helpers.request_body("Parameters", ChatMessageCreateRequest, required: true),
+ requestBody: request_body("Parameters", ChatMessageCreateRequest, required: true),
responses: %{
200 =>
Operation.response(