ChatOperation: Refactor.

This commit is contained in:
lain 2020-04-29 13:34:43 +02:00
parent 0c491b904d
commit 67659afe48

View file

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