commit: 6b8bc3bb4c3605f9e9fa5cbf4ee8bb7aefe1a402
parent f443b6d1d7675e0980a617d27d6efcae76947b08
Author: nicole mikołajczyk <me@mkljczk.pl>
Date: Sat, 29 Nov 2025 18:45:33 +0100
Merge branch 'blocked-muted-swagger' into 'develop'
Use separate schemas for muted/blocked accounts lists
See merge request pleroma/pleroma!4359
Diffstat:
3 files changed, 52 insertions(+), 4 deletions(-)
diff --git a/changelog.d/blocked-muted-swagger.change b/changelog.d/blocked-muted-swagger.change
@@ -0,0 +1 @@
+Use separate schemas for muted/blocked accounts lists
+\ No newline at end of file
diff --git a/lib/pleroma/web/api_spec/operations/account_operation.ex b/lib/pleroma/web/api_spec/operations/account_operation.ex
@@ -483,7 +483,7 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do
security: [%{"oAuth" => ["follow", "read:mutes"]}],
parameters: [with_relationships_param() | pagination_params()],
responses: %{
- 200 => Operation.response("Accounts", "application/json", array_of_accounts())
+ 200 => Operation.response("Accounts", "application/json", array_of_muted_accounts())
}
}
end
@@ -497,7 +497,7 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do
security: [%{"oAuth" => ["read:blocks"]}],
parameters: [with_relationships_param() | pagination_params()],
responses: %{
- 200 => Operation.response("Accounts", "application/json", array_of_accounts())
+ 200 => Operation.response("Accounts", "application/json", array_of_blocked_accounts())
}
}
end
@@ -897,6 +897,54 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do
}
end
+ def array_of_muted_accounts do
+ %Schema{
+ title: "ArrayOfMutedAccounts",
+ type: :array,
+ items: %Schema{
+ title: "MutedAccount",
+ description: "Response schema for a muted account",
+ allOf: [
+ Account,
+ %Schema{
+ type: :object,
+ properties: %{
+ mute_expires_at: %Schema{type: :string, format: "date-time", nullable: true}
+ }
+ }
+ ]
+ },
+ example: [
+ Account.schema().example
+ |> Map.put("mute_expires_at", "2025-11-29T16:23:13Z")
+ ]
+ }
+ end
+
+ def array_of_blocked_accounts do
+ %Schema{
+ title: "ArrayOfBlockedAccounts",
+ type: :array,
+ items: %Schema{
+ title: "BlockedAccount",
+ description: "Response schema for a blocked account",
+ allOf: [
+ Account,
+ %Schema{
+ type: :object,
+ properties: %{
+ block_expires_at: %Schema{type: :string, format: "date-time", nullable: true}
+ }
+ }
+ ]
+ },
+ example: [
+ Account.schema().example
+ |> Map.put("block_expires_at", "2025-11-29T16:23:13Z")
+ ]
+ }
+ end
+
defp array_of_relationships do
%Schema{
title: "ArrayOfRelationships",
diff --git a/lib/pleroma/web/api_spec/schemas/account.ex b/lib/pleroma/web/api_spec/schemas/account.ex
@@ -33,8 +33,6 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Account do
header: %Schema{type: :string, format: :uri},
id: FlakeID,
locked: %Schema{type: :boolean},
- mute_expires_at: %Schema{type: :string, format: "date-time", nullable: true},
- block_expires_at: %Schema{type: :string, format: "date-time", nullable: true},
note: %Schema{type: :string, format: :html},
statuses_count: %Schema{type: :integer},
url: %Schema{type: :string, format: :uri},