Schemas: Refactor to our naming scheme.
[akkoma] / lib / pleroma / web / api_spec / operations / chat_operation.ex
index 59539e8902c94365a97aa6c4b948ca45849f4e52..fc9d4608acef5cc00f0d40cabc4e98f23a823c56 100644 (file)
@@ -5,10 +5,11 @@
 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
+  alias Pleroma.Web.ApiSpec.Schemas.ChatMessage
+  alias Pleroma.Web.ApiSpec.Schemas.Chat
+
+  import Pleroma.Web.ApiSpec.Helpers
 
   @spec open_api_operation(atom) :: Operation.t()
   def open_api_operation(action) do
@@ -36,7 +37,7 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do
           Operation.response(
             "The created or existing chat",
             "application/json",
-            ChatResponse
+            Chat
           )
       },
       security: [
@@ -52,11 +53,7 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do
       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())
       },
@@ -73,12 +70,9 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do
       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(
@@ -103,13 +97,13 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do
       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(
             "The newly created ChatMessage",
             "application/json",
-            ChatMessageResponse
+            ChatMessage
           )
       },
       security: [
@@ -125,7 +119,7 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do
       title: "ChatsResponse",
       description: "Response schema for multiple Chats",
       type: :array,
-      items: ChatResponse,
+      items: Chat,
       example: [
         %{
           "account" => %{
@@ -186,7 +180,7 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do
       title: "ChatMessagesResponse",
       description: "Response schema for multiple ChatMessages",
       type: :array,
-      items: ChatMessageResponse,
+      items: ChatMessage,
       example: [
         %{
           "emojis" => [