Schemas: Refactor to our naming scheme.
[akkoma] / lib / pleroma / web / api_spec / operations / chat_operation.ex
index 6f55cbd59dff93e498f4345ef5dafdf730820580..fc9d4608acef5cc00f0d40cabc4e98f23a823c56 100644 (file)
@@ -4,11 +4,12 @@
 
 defmodule Pleroma.Web.ApiSpec.ChatOperation do
   alias OpenApiSpex.Operation
-  alias Pleroma.Web.ApiSpec.Helpers
-  alias Pleroma.Web.ApiSpec.Schemas.ChatMessageCreateRequest
-  alias Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse
-  alias Pleroma.Web.ApiSpec.Schemas.ChatResponse
   alias OpenApiSpex.Schema
+  alias Pleroma.Web.ApiSpec.Schemas.ChatMessageCreateRequest
+  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
@@ -23,12 +24,12 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do
       operationId: "ChatController.create",
       parameters: [
         Operation.parameter(
-          :ap_id,
+          :id,
           :path,
           :string,
-          "The ActivityPub id of the recipient of this chat.",
+          "The account id of the recipient of this chat",
           required: true,
-          example: "https://lain.com/users/lain"
+          example: "someflakeid"
         )
       ],
       responses: %{
@@ -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: [
@@ -120,16 +114,15 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do
     }
   end
 
-  def chats_response() do
+  def chats_response do
     %Schema{
       title: "ChatsResponse",
       description: "Response schema for multiple Chats",
       type: :array,
-      items: ChatResponse,
+      items: Chat,
       example: [
         %{
-          "recipient" => "https://dontbulling.me/users/lain",
-          "recipient_account" => %{
+          "account" => %{
             "pleroma" => %{
               "is_admin" => false,
               "confirmation_pending" => false,
@@ -182,12 +175,12 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do
     }
   end
 
-  def chat_messages_response() do
+  def chat_messages_response do
     %Schema{
       title: "ChatMessagesResponse",
       description: "Response schema for multiple ChatMessages",
       type: :array,
-      items: ChatMessageResponse,
+      items: ChatMessage,
       example: [
         %{
           "emojis" => [
@@ -202,10 +195,10 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do
           "content" => "Check this out :firefox:",
           "id" => "13",
           "chat_id" => "1",
-          "actor" => "https://dontbulling.me/users/lain"
+          "actor_id" => "someflakeid"
         },
         %{
-          "actor" => "https://dontbulling.me/users/lain",
+          "actor_id" => "someflakeid",
           "content" => "Whats' up?",
           "id" => "12",
           "chat_id" => "1",