feat(cli): Added CLI support for listing Sonarr indexers

This commit is contained in:
2024-11-18 19:57:55 -07:00
parent d8979221c8
commit f094cf5ad3
2 changed files with 8 additions and 1 deletions
+5
View File
@@ -32,6 +32,8 @@ pub enum SonarrListCommand {
)] )]
series_id: i64, series_id: i64,
}, },
#[command(about = "List all Sonarr indexers")]
Indexers,
#[command(about = "Fetch Sonarr logs")] #[command(about = "Fetch Sonarr logs")]
Logs { Logs {
#[arg(long, help = "How many log events to fetch", default_value_t = 500)] #[arg(long, help = "How many log events to fetch", default_value_t = 500)]
@@ -84,6 +86,9 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, SonarrListCommand> for SonarrListCommandH
SonarrListCommand::Episodes { series_id } => { SonarrListCommand::Episodes { series_id } => {
execute_network_event!(self, SonarrEvent::GetEpisodes(Some(series_id))); execute_network_event!(self, SonarrEvent::GetEpisodes(Some(series_id)));
} }
SonarrListCommand::Indexers => {
execute_network_event!(self, SonarrEvent::GetIndexers);
}
SonarrListCommand::Logs { SonarrListCommand::Logs {
events, events,
output_in_log_format, output_in_log_format,
+3 -1
View File
@@ -24,7 +24,8 @@ mod tests {
#[rstest] #[rstest]
fn test_list_commands_have_no_arg_requirements( fn test_list_commands_have_no_arg_requirements(
#[values("blocklist", "series", "downloads", "quality-profiles")] subcommand: &str, #[values("blocklist", "series", "downloads", "quality-profiles", "indexers")]
subcommand: &str,
) { ) {
let result = Cli::command().try_get_matches_from(["managarr", "sonarr", "list", subcommand]); let result = Cli::command().try_get_matches_from(["managarr", "sonarr", "list", subcommand]);
@@ -103,6 +104,7 @@ mod tests {
#[rstest] #[rstest]
#[case(SonarrListCommand::Blocklist, SonarrEvent::GetBlocklist)] #[case(SonarrListCommand::Blocklist, SonarrEvent::GetBlocklist)]
#[case(SonarrListCommand::Downloads, SonarrEvent::GetDownloads)] #[case(SonarrListCommand::Downloads, SonarrEvent::GetDownloads)]
#[case(SonarrListCommand::Indexers, SonarrEvent::GetIndexers)]
#[case(SonarrListCommand::QualityProfiles, SonarrEvent::GetQualityProfiles)] #[case(SonarrListCommand::QualityProfiles, SonarrEvent::GetQualityProfiles)]
#[case(SonarrListCommand::Series, SonarrEvent::ListSeries)] #[case(SonarrListCommand::Series, SonarrEvent::ListSeries)]
#[tokio::test] #[tokio::test]