From 0f21f6e802c390aa5a8258de2ef5a13a2c76d109 Mon Sep 17 00:00:00 2001 From: Ekaterina Vaartis Date: Wed, 4 Nov 2026 18:18:08 +0300 Subject: [PATCH] Pagination and schema fixes for the media management endpoint --- .../operations/pleroma_util_operation.ex | 25 +++++++++++++------ .../controllers/util_controller.ex | 4 +-- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/lib/pleroma/web/api_spec/operations/pleroma_util_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_util_operation.ex index d9534f2e6..2558f4df0 100644 --- a/lib/pleroma/web/api_spec/operations/pleroma_util_operation.ex +++ b/lib/pleroma/web/api_spec/operations/pleroma_util_operation.ex @@ -7,6 +7,7 @@ defmodule Pleroma.Web.ApiSpec.PleromaUtilOperation do alias OpenApiSpex.Schema alias Pleroma.Web.ApiSpec.Schemas.ApiError alias Pleroma.Web.ApiSpec.Schemas.BooleanLike + alias Pleroma.Web.ApiSpec.Schemas.Attachment import Pleroma.Web.ApiSpec.Helpers @@ -396,19 +397,29 @@ defmodule Pleroma.Web.ApiSpec.PleromaUtilOperation do def uploaded_media_operation do %Operation{ - tags: ["Media"], + tags: ["Media attachments"], summary: "List media uploaded by the current user", security: [%{"oAuth" => ["read:accounts"]}], operationId: "PleromaAPI.UtilController.uploaded_media", + parameters: [ + Operation.parameter( + :offset, + :query, + %Schema{type: :integer, default: 0}, + "Offset for uploaded media pagination" + ) + ], responses: %{ 200 => Operation.response("Success", "application/json", %Schema{ - type: :object, - properties: %{ - aliases: %Schema{ - type: :array, - items: %Schema{type: :string}, - example: ["foo@example.org"] + type: :array, + items: %Schema{ + type: :object, + properties: %{ + uploaded: %Schema{ + type: :string, description: "Date and time when the attachment was uploaded", format: :"date-time" + }, + attachment: Attachment } } }) diff --git a/lib/pleroma/web/pleroma_api/controllers/util_controller.ex b/lib/pleroma/web/pleroma_api/controllers/util_controller.ex index 597f8c3e6..bc72e197e 100644 --- a/lib/pleroma/web/pleroma_api/controllers/util_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/util_controller.ex @@ -278,12 +278,12 @@ defmodule Pleroma.Web.PleromaAPI.UtilController do end def uploaded_media( - %{assigns: %{user: user}} = conn, + %{assigns: %{user: user}, private: %{open_api_spex: %{params: %{ offset: offset }}}} = conn, _ ) do result = - Pleroma.Upload.list_uploaded_by(user, 0, 50) + Pleroma.Upload.list_uploaded_by(user, offset, 50) |> Enum.map( fn %Pleroma.Object{ id: id, data: %{ "url" => [ mediaUrl ], "name" => name }, inserted_at: uploaded } -> %{