feat: CLI support for deleting an album from Lidarr

This commit is contained in:
2026-01-09 16:33:32 -07:00
parent b2814371f0
commit 09bee7473f
14 changed files with 402 additions and 212 deletions
@@ -1,4 +1,4 @@
use crate::models::lidarr_models::{Album};
use crate::models::lidarr_models::{Album, DeleteParams};
use crate::network::lidarr_network::LidarrEvent;
use crate::network::{Network, RequestMethod};
use anyhow::Result;
@@ -57,6 +57,38 @@ impl Network<'_, '_> {
.await
}
pub(in crate::network::lidarr_network) async fn delete_album(
&mut self,
delete_album_params: DeleteParams,
) -> Result<()> {
let event = LidarrEvent::DeleteAlbum(DeleteParams::default());
let DeleteParams {
id,
delete_files,
add_import_list_exclusion,
} = delete_album_params;
info!(
"Deleting Lidarr album with ID: {id} with deleteFiles={delete_files} and addImportListExclusion={add_import_list_exclusion}"
);
let request_props = self
.request_props_from(
event,
RequestMethod::Delete,
None::<()>,
Some(format!("/{id}")),
Some(format!(
"deleteFiles={delete_files}&addImportListExclusion={add_import_list_exclusion}"
)),
)
.await;
self
.handle_request::<(), ()>(request_props, |_, _| ())
.await
}
pub(in crate::network::lidarr_network) async fn toggle_album_monitoring(
&mut self,
album_id: i64,