feat: Lidarr CLI commands to list quality profiles and metadata profiles
This commit is contained in:
@@ -20,6 +20,10 @@ mod list_command_handler_tests;
|
|||||||
pub enum LidarrListCommand {
|
pub enum LidarrListCommand {
|
||||||
#[command(about = "List all artists in your Lidarr library")]
|
#[command(about = "List all artists in your Lidarr library")]
|
||||||
Artists,
|
Artists,
|
||||||
|
#[command(about = "List all Lidarr metadata profiles")]
|
||||||
|
MetadataProfiles,
|
||||||
|
#[command(about = "List all Lidarr quality profiles")]
|
||||||
|
QualityProfiles,
|
||||||
#[command(about = "List all Lidarr tags")]
|
#[command(about = "List all Lidarr tags")]
|
||||||
Tags,
|
Tags,
|
||||||
}
|
}
|
||||||
@@ -58,6 +62,20 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, LidarrListCommand> for LidarrListCommandH
|
|||||||
.await?;
|
.await?;
|
||||||
serde_json::to_string_pretty(&resp)?
|
serde_json::to_string_pretty(&resp)?
|
||||||
}
|
}
|
||||||
|
LidarrListCommand::MetadataProfiles => {
|
||||||
|
let resp = self
|
||||||
|
.network
|
||||||
|
.handle_network_event(LidarrEvent::GetMetadataProfiles.into())
|
||||||
|
.await?;
|
||||||
|
serde_json::to_string_pretty(&resp)?
|
||||||
|
}
|
||||||
|
LidarrListCommand::QualityProfiles => {
|
||||||
|
let resp = self
|
||||||
|
.network
|
||||||
|
.handle_network_event(LidarrEvent::GetQualityProfiles.into())
|
||||||
|
.await?;
|
||||||
|
serde_json::to_string_pretty(&resp)?
|
||||||
|
}
|
||||||
LidarrListCommand::Tags => {
|
LidarrListCommand::Tags => {
|
||||||
let resp = self
|
let resp = self
|
||||||
.network
|
.network
|
||||||
|
|||||||
@@ -22,7 +22,9 @@ mod tests {
|
|||||||
use rstest::rstest;
|
use rstest::rstest;
|
||||||
|
|
||||||
#[rstest]
|
#[rstest]
|
||||||
fn test_list_commands_have_no_arg_requirements(#[values("artists", "tags")] subcommand: &str) {
|
fn test_list_commands_have_no_arg_requirements(
|
||||||
|
#[values("artists", "metadata-profiles", "quality-profiles", "tags")] subcommand: &str,
|
||||||
|
) {
|
||||||
let result = Cli::command().try_get_matches_from(["managarr", "lidarr", "list", subcommand]);
|
let result = Cli::command().try_get_matches_from(["managarr", "lidarr", "list", subcommand]);
|
||||||
|
|
||||||
assert_ok!(&result);
|
assert_ok!(&result);
|
||||||
@@ -49,6 +51,8 @@ mod tests {
|
|||||||
|
|
||||||
#[rstest]
|
#[rstest]
|
||||||
#[case(LidarrListCommand::Artists, LidarrEvent::ListArtists)]
|
#[case(LidarrListCommand::Artists, LidarrEvent::ListArtists)]
|
||||||
|
#[case(LidarrListCommand::MetadataProfiles, LidarrEvent::GetMetadataProfiles)]
|
||||||
|
#[case(LidarrListCommand::QualityProfiles, LidarrEvent::GetQualityProfiles)]
|
||||||
#[case(LidarrListCommand::Tags, LidarrEvent::GetTags)]
|
#[case(LidarrListCommand::Tags, LidarrEvent::GetTags)]
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_handle_list_command(
|
async fn test_handle_list_command(
|
||||||
|
|||||||
Reference in New Issue
Block a user