diff --git a/src/cli/sonarr/refresh_command_handler.rs b/src/cli/sonarr/refresh_command_handler.rs index 11077af..418862f 100644 --- a/src/cli/sonarr/refresh_command_handler.rs +++ b/src/cli/sonarr/refresh_command_handler.rs @@ -28,6 +28,8 @@ pub enum SonarrRefreshCommand { )] series_id: i64, }, + #[command(about = "Refresh all downloads in Sonarr")] + Downloads, } impl From for Command { @@ -73,6 +75,13 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, SonarrRefreshCommand> .await?; serde_json::to_string_pretty(&resp)? } + SonarrRefreshCommand::Downloads => { + let resp = self + .network + .handle_network_event(SonarrEvent::UpdateDownloads.into()) + .await?; + serde_json::to_string_pretty(&resp)? + } }; Ok(result) diff --git a/src/cli/sonarr/refresh_command_handler_tests.rs b/src/cli/sonarr/refresh_command_handler_tests.rs index c1fd427..ce133d2 100644 --- a/src/cli/sonarr/refresh_command_handler_tests.rs +++ b/src/cli/sonarr/refresh_command_handler_tests.rs @@ -25,7 +25,9 @@ mod tests { use rstest::rstest; #[rstest] - fn test_refresh_commands_have_no_arg_requirements(#[values("all-series")] subcommand: &str) { + fn test_refresh_commands_have_no_arg_requirements( + #[values("all-series", "downloads")] subcommand: &str, + ) { let result = Cli::command().try_get_matches_from(["managarr", "sonarr", "refresh", subcommand]); @@ -85,6 +87,7 @@ mod tests { #[rstest] #[case(SonarrRefreshCommand::AllSeries, SonarrEvent::UpdateAllSeries)] + #[case(SonarrRefreshCommand::Downloads, SonarrEvent::UpdateDownloads)] #[tokio::test] async fn test_handle_refresh_command( #[case] refresh_command: SonarrRefreshCommand,