feat(http-api): cabler la route POST /torrents/delete_all
Le commit precedent ajoutait api_torrents_delete_all et la commande
Tauri, mais aucune route HTTP ne l'exposait : la WebUI servie en mode
navigateur appelait POST /torrents/delete_all et recevait un 404. Seul
le chemin desktop, qui passe par invokeAPI, fonctionnait.
Ajoute h_torrents_delete_all, avec remove_files lu en query param et
defaut a false, puis enregistre la route dans le bloc !read_only aux
cotes de /torrents/{id}/delete. Segment statique, donc prioritaire sur
/torrents/{id} — meme schema que /torrents/resolve_magnet.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
5d68aaf352
commit
fbd052bc04
2 changed files with 22 additions and 0 deletions
|
|
@ -112,6 +112,9 @@ pub fn make_api_router(state: ApiState) -> Router {
|
||||||
"/torrents/{id}/delete",
|
"/torrents/{id}/delete",
|
||||||
post(torrents::h_torrent_action_delete),
|
post(torrents::h_torrent_action_delete),
|
||||||
)
|
)
|
||||||
|
// Segment statique, donc prioritaire sur /torrents/{id} — meme
|
||||||
|
// schema que /torrents/resolve_magnet juste au-dessus.
|
||||||
|
.route("/torrents/delete_all", post(torrents::h_torrents_delete_all))
|
||||||
.route(
|
.route(
|
||||||
"/torrents/{id}/update_only_files",
|
"/torrents/{id}/update_only_files",
|
||||||
post(torrents::h_torrent_action_update_only_files),
|
post(torrents::h_torrent_action_update_only_files),
|
||||||
|
|
|
||||||
|
|
@ -146,6 +146,25 @@ pub async fn h_torrent_action_delete(
|
||||||
.map(axum::Json)
|
.map(axum::Json)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Deserialize, Default)]
|
||||||
|
pub struct DeleteAllQueryParams {
|
||||||
|
/// Supprime aussi les donnees telechargees. Absent = false, on ne garde
|
||||||
|
/// que la suppression des torrents.
|
||||||
|
#[serde(default)]
|
||||||
|
pub remove_files: bool,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub async fn h_torrents_delete_all(
|
||||||
|
State(state): State<ApiState>,
|
||||||
|
Query(params): Query<DeleteAllQueryParams>,
|
||||||
|
) -> Result<impl IntoResponse> {
|
||||||
|
state
|
||||||
|
.api
|
||||||
|
.api_torrents_delete_all(params.remove_files)
|
||||||
|
.await
|
||||||
|
.map(axum::Json)
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
pub struct UpdateOnlyFilesRequest {
|
pub struct UpdateOnlyFilesRequest {
|
||||||
only_files: Vec<usize>,
|
only_files: Vec<usize>,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue