aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/api_spec
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2020-07-16 22:19:17 -0500
committerAlex Gleason <alex@alexgleason.me>2020-07-17 16:17:49 -0500
commitd0eb43b58b0a191b727360cf4523329d2dc60adc (patch)
treef8c2adc32f2f242ea0792295662dacbff8211972 /lib/pleroma/web/api_spec
parent3a2b2cb6f2d6ce39ae0d246649189c021c535992 (diff)
downloadpleroma-d0eb43b58b0a191b727360cf4523329d2dc60adc.tar.gz
Add account aliases
Diffstat (limited to 'lib/pleroma/web/api_spec')
-rw-r--r--lib/pleroma/web/api_spec/operations/pleroma_account_operation.ex46
-rw-r--r--lib/pleroma/web/api_spec/schemas/account.ex2
2 files changed, 48 insertions, 0 deletions
diff --git a/lib/pleroma/web/api_spec/operations/pleroma_account_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_account_operation.ex
index 97836b2eb..1040f6e20 100644
--- a/lib/pleroma/web/api_spec/operations/pleroma_account_operation.ex
+++ b/lib/pleroma/web/api_spec/operations/pleroma_account_operation.ex
@@ -4,6 +4,8 @@
defmodule Pleroma.Web.ApiSpec.PleromaAccountOperation do
alias OpenApiSpex.Operation
+ alias OpenApiSpex.Schema
+ alias Pleroma.Web.ApiSpec.Schemas.Account
alias Pleroma.Web.ApiSpec.Schemas.AccountRelationship
alias Pleroma.Web.ApiSpec.Schemas.ApiError
alias Pleroma.Web.ApiSpec.Schemas.FlakeID
@@ -87,10 +89,54 @@ defmodule Pleroma.Web.ApiSpec.PleromaAccountOperation do
}
end
+ def add_aliases_operation do
+ %Operation{
+ tags: ["Accounts"],
+ summary: "Add ActivityPub aliases",
+ operationId: "PleromaAPI.AccountController.add_aliases",
+ requestBody: request_body("Parameters", alias_request(), required: true),
+ security: [%{"oAuth" => ["write:accounts"]}],
+ responses: %{
+ 200 => Operation.response("Account", "application/json", Account),
+ 403 => Operation.response("Forbidden", "application/json", ApiError)
+ }
+ }
+ end
+
+ def delete_aliases_operation do
+ %Operation{
+ tags: ["Accounts"],
+ summary: "Delete ActivityPub aliases",
+ operationId: "PleromaAPI.AccountController.delete_aliases",
+ requestBody: request_body("Parameters", alias_request(), required: true),
+ security: [%{"oAuth" => ["write:accounts"]}],
+ responses: %{
+ 200 => Operation.response("Account", "application/json", Account)
+ }
+ }
+ end
+
defp id_param do
Operation.parameter(:id, :path, FlakeID, "Account ID",
example: "9umDrYheeY451cQnEe",
required: true
)
end
+
+ defp alias_request do
+ %Schema{
+ title: "AccountAliasRequest",
+ description: "POST body for adding/deleting AP aliases",
+ type: :object,
+ properties: %{
+ aliases: %Schema{
+ type: :array,
+ items: %Schema{type: :string}
+ }
+ },
+ example: %{
+ "aliases" => ["https://beepboop.social/users/beep", "https://mushroom.kingdom/users/toad"]
+ }
+ }
+ end
end
diff --git a/lib/pleroma/web/api_spec/schemas/account.ex b/lib/pleroma/web/api_spec/schemas/account.ex
index ca79f0747..4fd27edf5 100644
--- a/lib/pleroma/web/api_spec/schemas/account.ex
+++ b/lib/pleroma/web/api_spec/schemas/account.ex
@@ -40,6 +40,8 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Account do
pleroma: %Schema{
type: :object,
properties: %{
+ ap_id: %Schema{type: :string},
+ ap_aliases: %Schema{type: :array, items: %Schema{type: :string}},
allow_following_move: %Schema{
type: :boolean,
description: "whether the user allows automatically follow moved following accounts"