Clean up account aliases
[akkoma] / lib / pleroma / web / api_spec / helpers.ex
index 183df43eea9a03819753219ec33b31edac1b3a25..2a7f1a706bc737d1ed829fb6bf7d1c3bf015acf1 100644 (file)
@@ -5,6 +5,7 @@
 defmodule Pleroma.Web.ApiSpec.Helpers do
   alias OpenApiSpex.Operation
   alias OpenApiSpex.Schema
+  alias Pleroma.Web.ApiSpec.Schemas.BooleanLike
 
   def request_body(description, schema_ref, opts \\ []) do
     media_types = ["application/json", "multipart/form-data", "application/x-www-form-urlencoded"]
@@ -28,6 +29,10 @@ defmodule Pleroma.Web.ApiSpec.Helpers do
     }
   end
 
+  def admin_api_params do
+    [Operation.parameter(:admin_token, :query, :string, "Allows authorization via admin token.")]
+  end
+
   def pagination_params do
     [
       Operation.parameter(:max_id, :query, :string, "Return items older than this ID"),
@@ -38,6 +43,12 @@ defmodule Pleroma.Web.ApiSpec.Helpers do
         :string,
         "Return the newest items newer than this ID"
       ),
+      Operation.parameter(
+        :offset,
+        :query,
+        %Schema{type: :integer, default: 0},
+        "Return items past this number of items"
+      ),
       Operation.parameter(
         :limit,
         :query,
@@ -47,6 +58,15 @@ defmodule Pleroma.Web.ApiSpec.Helpers do
     ]
   end
 
+  def with_relationships_param do
+    Operation.parameter(
+      :with_relationships,
+      :query,
+      BooleanLike,
+      "Embed relationships into accounts."
+    )
+  end
+
   def empty_object_response do
     Operation.response("Empty object", "application/json", %Schema{type: :object, example: %{}})
   end
@@ -54,4 +74,8 @@ defmodule Pleroma.Web.ApiSpec.Helpers do
   def empty_array_response do
     Operation.response("Empty array", "application/json", %Schema{type: :array, example: []})
   end
+
+  def no_content_response do
+    Operation.response("No Content", "application/json", %Schema{type: :string, example: ""})
+  end
 end