in dev, allow dev FE
[akkoma] / lib / pleroma / web / api_spec / schemas / status.ex
index 3f58709076e0b1852911b4e27c35afd99f47ac79..a6df9be94d7e242f0259c6b8746076813f29634b 100644 (file)
@@ -23,9 +23,10 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do
       application: %Schema{
         description: "The application used to post this status",
         type: :object,
+        nullable: true,
         properties: %{
           name: %Schema{type: :string},
-          website: %Schema{type: :string, nullable: true, format: :uri}
+          website: %Schema{type: :string, format: :uri}
         }
       },
       bookmarked: %Schema{type: :boolean, description: "Have you bookmarked this status?"},
@@ -72,6 +73,12 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do
         format: "date-time",
         description: "The date when this status was created"
       },
+      edited_at: %Schema{
+        type: :string,
+        format: "date-time",
+        nullable: true,
+        description: "The date when this status was last edited"
+      },
       emojis: %Schema{
         type: :array,
         items: Emoji,
@@ -132,6 +139,16 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do
         type: :boolean,
         description: "Have you pinned this status? Only appears if the status is pinnable."
       },
+      quote_id: %Schema{
+        type: :string,
+        description: "ID of the status being quoted",
+        nullable: true
+      },
+      quote: %Schema{
+        allOf: [%OpenApiSpex.Reference{"$ref": "#/components/schemas/Status"}],
+        nullable: true,
+        description: "Quoted status (if any)"
+      },
       pleroma: %Schema{
         type: :object,
         properties: %{
@@ -141,9 +158,15 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do
             description:
               "A map consisting of alternate representations of the `content` property with the key being it's mimetype. Currently the only alternate representation supported is `text/plain`"
           },
+          context: %Schema{
+            type: :string,
+            description: "The thread identifier the status is associated with"
+          },
           conversation_id: %Schema{
             type: :integer,
-            description: "The ID of the AP context the status is associated with (if any)"
+            deprecated: true,
+            description:
+              "The ID of the AP context the status is associated with (if any); deprecated, please use `context` instead"
           },
           direct_conversation_id: %Schema{
             type: :integer,
@@ -193,6 +216,40 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do
           parent_visible: %Schema{
             type: :boolean,
             description: "`true` if the parent post is visible to the user"
+          },
+          pinned_at: %Schema{
+            type: :string,
+            format: "date-time",
+            nullable: true,
+            description:
+              "A datetime (ISO 8601) that states when the post was pinned or `null` if the post is not pinned"
+          }
+        }
+      },
+      akkoma: %Schema{
+        type: :object,
+        properties: %{
+          source: %Schema{
+            nullable: true,
+            oneOf: [
+              %Schema{type: :string, example: 'plaintext content'},
+              %Schema{
+                type: :object,
+                properties: %{
+                  content: %Schema{
+                    type: :string,
+                    description: "The source content of the status",
+                    nullable: true
+                  },
+                  mediaType: %Schema{
+                    type: :string,
+                    description: "The source MIME type of the status",
+                    example: "text/plain",
+                    nullable: true
+                  }
+                }
+              }
+            ]
           }
         }
       },
@@ -256,7 +313,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do
         "note" => "Tester Number 6",
         "pleroma" => %{
           "background_image" => nil,
-          "confirmation_pending" => false,
+          "is_confirmed" => true,
           "hide_favorites" => true,
           "hide_followers" => false,
           "hide_followers_count" => false,
@@ -274,9 +331,11 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do
             "id" => "9toJCsKN7SmSf3aj5c",
             "muting" => false,
             "muting_notifications" => false,
+            "note" => "",
             "requested" => false,
             "showing_reblogs" => true,
-            "subscribing" => false
+            "subscribing" => false,
+            "notifying" => false
           },
           "skip_thread_containment" => false,
           "tags" => []
@@ -291,7 +350,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do
         "url" => "http://localhost:4001/users/nick6",
         "username" => "nick6"
       },
-      "application" => %{"name" => "Web", "website" => nil},
+      "application" => nil,
       "bookmarked" => false,
       "card" => nil,
       "content" => "foobar",
@@ -309,6 +368,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do
       "pinned" => false,
       "pleroma" => %{
         "content" => %{"text/plain" => "foobar"},
+        "context" => "http://localhost:4001/objects/8b4c0c80-6a37-4d2a-b1b9-05a19e3875aa",
         "conversation_id" => 345_972,
         "direct_conversation_id" => nil,
         "emoji_reactions" => [],