diff --git a/src/interfaces/api/handlers/batch_handler.rs b/src/interfaces/api/handlers/batch_handler.rs index 93c3c40f..0249a3e8 100644 --- a/src/interfaces/api/handlers/batch_handler.rs +++ b/src/interfaces/api/handlers/batch_handler.rs @@ -852,6 +852,21 @@ pub async fn move_folders_batch( } // Hander as a workarround for drag & drop (does not support POST requests) +#[utoipa::path( + get, + path = "/api/batch/download", + params( + ("file_ids" = Option, Query, description = "Comma-separated file IDs"), + ("folder_ids" = Option, Query, description = "Comma-separated folder IDs"), + ), + responses( + (status = 200, description = "ZIP archive stream"), + (status = 400, description = "Bad request"), + (status = 401, description = "Unauthorized"), + (status = 500, description = "ZIP creation failed") + ), + tag = "batch" +)] pub async fn download_batch_querystring( State(state): State, auth_user: AuthUser, diff --git a/src/interfaces/api/mod.rs b/src/interfaces/api/mod.rs index a7f331b2..fd4bfbbf 100644 --- a/src/interfaces/api/mod.rs +++ b/src/interfaces/api/mod.rs @@ -131,7 +131,8 @@ use crate::interfaces::api::handlers::file_handler::MoveFilePayload; handlers::batch_handler::get_folders_batch, handlers::batch_handler::move_folders_batch, handlers::batch_handler::trash_batch, - handlers::batch_handler::download_batch, + handlers::batch_handler::download_batch_post, + handlers::batch_handler::download_batch_querystring, // Music/playlist handlers (free functions) handlers::music_handler::create_playlist, handlers::music_handler::list_playlists,