refactor: Refactored the SonarrEvent enum to not unnecessarily wrap dual series_id and season_number values in a tuple when both values can be passed directly

This commit is contained in:
2026-01-19 16:44:10 -07:00
parent a2e6400a38
commit f17f542e8e
19 changed files with 74 additions and 74 deletions
+4 -6
View File
@@ -58,21 +58,19 @@ impl App<'_> {
} }
ActiveSonarrBlock::SeasonHistory => { ActiveSonarrBlock::SeasonHistory => {
if !self.data.sonarr_data.seasons.is_empty() { if !self.data.sonarr_data.seasons.is_empty() {
let (series_id, season_number) = self.extract_series_id_season_number_tuple().await;
self self
.dispatch_network_event( .dispatch_network_event(SonarrEvent::GetSeasonHistory(series_id, season_number).into())
SonarrEvent::GetSeasonHistory(self.extract_series_id_season_number_tuple().await)
.into(),
)
.await; .await;
} }
} }
ActiveSonarrBlock::ManualSeasonSearch => { ActiveSonarrBlock::ManualSeasonSearch => {
match self.data.sonarr_data.season_details_modal.as_ref() { match self.data.sonarr_data.season_details_modal.as_ref() {
Some(season_details_modal) if season_details_modal.season_releases.is_empty() => { Some(season_details_modal) if season_details_modal.season_releases.is_empty() => {
let (series_id, season_number) = self.extract_series_id_season_number_tuple().await;
self self
.dispatch_network_event( .dispatch_network_event(
SonarrEvent::GetSeasonReleases(self.extract_series_id_season_number_tuple().await) SonarrEvent::GetSeasonReleases(series_id, season_number).into(),
.into(),
) )
.await; .await;
} }
+2 -2
View File
@@ -132,7 +132,7 @@ mod tests {
assert!(app.is_loading); assert!(app.is_loading);
assert_eq!( assert_eq!(
sync_network_rx.recv().await.unwrap(), sync_network_rx.recv().await.unwrap(),
SonarrEvent::GetSeasonHistory((1, 1)).into() SonarrEvent::GetSeasonHistory(1, 1).into()
); );
assert!(!app.data.sonarr_data.prompt_confirm); assert!(!app.data.sonarr_data.prompt_confirm);
assert_eq!(app.tick_count, 0); assert_eq!(app.tick_count, 0);
@@ -175,7 +175,7 @@ mod tests {
assert!(app.is_loading); assert!(app.is_loading);
assert_eq!( assert_eq!(
sync_network_rx.recv().await.unwrap(), sync_network_rx.recv().await.unwrap(),
SonarrEvent::GetSeasonReleases((1, 1)).into() SonarrEvent::GetSeasonReleases(1, 1).into()
); );
assert!(!app.data.sonarr_data.prompt_confirm); assert!(!app.data.sonarr_data.prompt_confirm);
assert_eq!(app.tick_count, 0); assert_eq!(app.tick_count, 0);
+1 -1
View File
@@ -249,7 +249,7 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, SonarrListCommand> for SonarrListCommandH
} => { } => {
let resp = self let resp = self
.network .network
.handle_network_event(SonarrEvent::GetSeasonHistory((series_id, season_number)).into()) .handle_network_event(SonarrEvent::GetSeasonHistory(series_id, season_number).into())
.await?; .await?;
serde_json::to_string_pretty(&resp)? serde_json::to_string_pretty(&resp)?
} }
+1 -1
View File
@@ -543,7 +543,7 @@ mod tests {
mock_network mock_network
.expect_handle_network_event() .expect_handle_network_event()
.with(eq::<NetworkEvent>( .with(eq::<NetworkEvent>(
SonarrEvent::GetSeasonHistory((expected_series_id, expected_season_number)).into(), SonarrEvent::GetSeasonHistory(expected_series_id, expected_season_number).into(),
)) ))
.times(1) .times(1)
.returning(|_| { .returning(|_| {
@@ -98,7 +98,7 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, SonarrManualSearchCommand>
println!("Searching for season releases. This may take a minute..."); println!("Searching for season releases. This may take a minute...");
match self match self
.network .network
.handle_network_event(SonarrEvent::GetSeasonReleases((series_id, season_number)).into()) .handle_network_event(SonarrEvent::GetSeasonReleases(series_id, season_number).into())
.await .await
{ {
Ok(Serdeable::Sonarr(SonarrSerdeable::Releases(releases_vec))) => { Ok(Serdeable::Sonarr(SonarrSerdeable::Releases(releases_vec))) => {
@@ -176,7 +176,7 @@ mod tests {
mock_network mock_network
.expect_handle_network_event() .expect_handle_network_event()
.with(eq::<NetworkEvent>( .with(eq::<NetworkEvent>(
SonarrEvent::GetSeasonReleases((expected_series_id, expected_season_number)).into(), SonarrEvent::GetSeasonReleases(expected_series_id, expected_season_number).into(),
)) ))
.times(1) .times(1)
.returning(|_| { .returning(|_| {
+1 -1
View File
@@ -297,7 +297,7 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, SonarrCommand> for SonarrCliHandler<'a, '
let resp = self let resp = self
.network .network
.handle_network_event( .handle_network_event(
SonarrEvent::ToggleSeasonMonitoring((series_id, season_number)).into(), SonarrEvent::ToggleSeasonMonitoring(series_id, season_number).into(),
) )
.await?; .await?;
serde_json::to_string_pretty(&resp)? serde_json::to_string_pretty(&resp)?
+1 -1
View File
@@ -755,7 +755,7 @@ mod tests {
mock_network mock_network
.expect_handle_network_event() .expect_handle_network_event()
.with(eq::<NetworkEvent>( .with(eq::<NetworkEvent>(
SonarrEvent::ToggleSeasonMonitoring((expected_series_id, expected_season_number)).into(), SonarrEvent::ToggleSeasonMonitoring(expected_series_id, expected_season_number).into(),
)) ))
.times(1) .times(1)
.returning(|_| { .returning(|_| {
@@ -94,7 +94,7 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, SonarrTriggerAutomaticSearchCommand>
let resp = self let resp = self
.network .network
.handle_network_event( .handle_network_event(
SonarrEvent::TriggerAutomaticSeasonSearch((series_id, season_number)).into(), SonarrEvent::TriggerAutomaticSeasonSearch(series_id, season_number).into(),
) )
.await?; .await?;
serde_json::to_string_pretty(&resp)? serde_json::to_string_pretty(&resp)?
@@ -197,7 +197,7 @@ mod tests {
mock_network mock_network
.expect_handle_network_event() .expect_handle_network_event()
.with(eq::<NetworkEvent>( .with(eq::<NetworkEvent>(
SonarrEvent::TriggerAutomaticSeasonSearch((expected_series_id, expected_season_number)) SonarrEvent::TriggerAutomaticSeasonSearch(expected_series_id, expected_season_number)
.into(), .into(),
)) ))
.times(1) .times(1)
@@ -279,8 +279,9 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveSonarrBlock> for SeasonDetailsHandler
} }
ActiveSonarrBlock::AutomaticallySearchSeasonPrompt => { ActiveSonarrBlock::AutomaticallySearchSeasonPrompt => {
if self.app.data.sonarr_data.prompt_confirm { if self.app.data.sonarr_data.prompt_confirm {
let (series_id, season_number) = self.extract_series_id_season_number_tuple();
self.app.data.sonarr_data.prompt_confirm_action = Some( self.app.data.sonarr_data.prompt_confirm_action = Some(
SonarrEvent::TriggerAutomaticSeasonSearch(self.extract_series_id_season_number_tuple()), SonarrEvent::TriggerAutomaticSeasonSearch(series_id, season_number),
); );
} }
@@ -404,8 +405,9 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveSonarrBlock> for SeasonDetailsHandler
}, },
ActiveSonarrBlock::AutomaticallySearchSeasonPrompt if matches_key!(confirm, key) => { ActiveSonarrBlock::AutomaticallySearchSeasonPrompt if matches_key!(confirm, key) => {
self.app.data.sonarr_data.prompt_confirm = true; self.app.data.sonarr_data.prompt_confirm = true;
let (series_id, season_number) = self.extract_series_id_season_number_tuple();
self.app.data.sonarr_data.prompt_confirm_action = Some( self.app.data.sonarr_data.prompt_confirm_action = Some(
SonarrEvent::TriggerAutomaticSeasonSearch(self.extract_series_id_season_number_tuple()), SonarrEvent::TriggerAutomaticSeasonSearch(series_id, season_number),
); );
self.app.pop_navigation_stack(); self.app.pop_navigation_stack();
@@ -268,7 +268,7 @@ mod tests {
#[rstest] #[rstest]
#[case( #[case(
ActiveSonarrBlock::AutomaticallySearchSeasonPrompt, ActiveSonarrBlock::AutomaticallySearchSeasonPrompt,
SonarrEvent::TriggerAutomaticSeasonSearch((0, 0)) SonarrEvent::TriggerAutomaticSeasonSearch(0, 0)
)] )]
#[case( #[case(
ActiveSonarrBlock::DeleteEpisodeFilePrompt, ActiveSonarrBlock::DeleteEpisodeFilePrompt,
@@ -694,7 +694,7 @@ mod tests {
#[rstest] #[rstest]
#[case( #[case(
ActiveSonarrBlock::AutomaticallySearchSeasonPrompt, ActiveSonarrBlock::AutomaticallySearchSeasonPrompt,
SonarrEvent::TriggerAutomaticSeasonSearch((0, 0)) SonarrEvent::TriggerAutomaticSeasonSearch(0, 0)
)] )]
#[case( #[case(
ActiveSonarrBlock::DeleteEpisodeFilePrompt, ActiveSonarrBlock::DeleteEpisodeFilePrompt,
@@ -278,8 +278,9 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveSonarrBlock> for SeriesDetailsHandler
} }
_ if matches_key!(toggle_monitoring, key) => { _ if matches_key!(toggle_monitoring, key) => {
self.app.data.sonarr_data.prompt_confirm = true; self.app.data.sonarr_data.prompt_confirm = true;
let (series_id, season_number) = self.extract_series_id_season_number_tuple();
self.app.data.sonarr_data.prompt_confirm_action = Some( self.app.data.sonarr_data.prompt_confirm_action = Some(
SonarrEvent::ToggleSeasonMonitoring(self.extract_series_id_season_number_tuple()), SonarrEvent::ToggleSeasonMonitoring(series_id, season_number),
); );
self self
@@ -378,7 +378,7 @@ mod tests {
assert!(app.is_routing); assert!(app.is_routing);
assert_some_eq_x!( assert_some_eq_x!(
&app.data.sonarr_data.prompt_confirm_action, &app.data.sonarr_data.prompt_confirm_action,
&SonarrEvent::ToggleSeasonMonitoring((0, 0)) &SonarrEvent::ToggleSeasonMonitoring(0, 0)
); );
} }
@@ -302,8 +302,10 @@ impl LidarrData<'_> {
.metadata_profile_list .metadata_profile_list
.set_items(vec![metadata_profile().name]); .set_items(vec![metadata_profile().name]);
let mut track_details_modal = TrackDetailsModal::default(); let mut track_details_modal = TrackDetailsModal {
track_details_modal.track_details = ScrollableText::with_string("Some details".to_owned()); track_details: ScrollableText::with_string("Some details".to_owned()),
..TrackDetailsModal::default()
};
track_details_modal track_details_modal
.track_history .track_history
.set_items(vec![lidarr_history_item()]); .set_items(vec![lidarr_history_item()]);
@@ -14,10 +14,10 @@ mod sonarr_seasons_network_tests;
impl Network<'_, '_> { impl Network<'_, '_> {
pub(in crate::network::sonarr_network) async fn toggle_sonarr_season_monitoring( pub(in crate::network::sonarr_network) async fn toggle_sonarr_season_monitoring(
&mut self, &mut self,
series_id_season_number_tuple: (i64, i64), series_id: i64,
season_number: i64,
) -> Result<()> { ) -> Result<()> {
let event = SonarrEvent::ToggleSeasonMonitoring(series_id_season_number_tuple); let event = SonarrEvent::ToggleSeasonMonitoring(series_id, season_number);
let (series_id, season_number) = series_id_season_number_tuple;
let detail_event = SonarrEvent::GetSeriesDetails(series_id); let detail_event = SonarrEvent::GetSeriesDetails(series_id);
info!("Toggling season monitoring for season {season_number} in series with ID: {series_id}"); info!("Toggling season monitoring for season {season_number} in series with ID: {series_id}");
@@ -94,10 +94,10 @@ impl Network<'_, '_> {
pub(in crate::network::sonarr_network) async fn get_season_releases( pub(in crate::network::sonarr_network) async fn get_season_releases(
&mut self, &mut self,
series_season_id_tuple: (i64, i64), series_id: i64,
season_number: i64,
) -> Result<Vec<SonarrRelease>> { ) -> Result<Vec<SonarrRelease>> {
let event = SonarrEvent::GetSeasonReleases(series_season_id_tuple); let event = SonarrEvent::GetSeasonReleases(series_id, season_number);
let (series_id, season_number) = series_season_id_tuple;
info!("Fetching releases for series with ID: {series_id} and season number: {season_number}"); info!("Fetching releases for series with ID: {series_id} and season number: {season_number}");
let request_props = self let request_props = self
@@ -132,10 +132,10 @@ impl Network<'_, '_> {
pub(in crate::network::sonarr_network) async fn get_sonarr_season_history( pub(in crate::network::sonarr_network) async fn get_sonarr_season_history(
&mut self, &mut self,
series_season_id_tuple: (i64, i64), series_id: i64,
season_number: i64,
) -> Result<Vec<SonarrHistoryItem>> { ) -> Result<Vec<SonarrHistoryItem>> {
let event = SonarrEvent::GetSeasonHistory(series_season_id_tuple); let event = SonarrEvent::GetSeasonHistory(series_id, season_number);
let (series_id, season_number) = series_season_id_tuple;
info!("Fetching history for series with ID: {series_id} and season number: {season_number}"); info!("Fetching history for series with ID: {series_id} and season number: {season_number}");
let params = format!("seriesId={series_id}&seasonNumber={season_number}",); let params = format!("seriesId={series_id}&seasonNumber={season_number}",);
@@ -170,10 +170,10 @@ impl Network<'_, '_> {
pub(in crate::network::sonarr_network) async fn trigger_automatic_season_search( pub(in crate::network::sonarr_network) async fn trigger_automatic_season_search(
&mut self, &mut self,
series_season_id_tuple: (i64, i64), series_id: i64,
season_number: i64,
) -> Result<Value> { ) -> Result<Value> {
let event = SonarrEvent::TriggerAutomaticSeasonSearch(series_season_id_tuple); let event = SonarrEvent::TriggerAutomaticSeasonSearch(series_id, season_number);
let (series_id, season_number) = series_season_id_tuple;
info!("Searching indexers for series with ID: {series_id} and season number: {season_number}"); info!("Searching indexers for series with ID: {series_id} and season number: {season_number}");
let body = SonarrCommandBody { let body = SonarrCommandBody {
@@ -37,7 +37,7 @@ mod tests {
"PUT", "PUT",
format!( format!(
"/api/v3{}/1", "/api/v3{}/1",
SonarrEvent::ToggleSeasonMonitoring((1, 1)).resource() SonarrEvent::ToggleSeasonMonitoring(1, 1).resource()
) )
.as_str(), .as_str(),
) )
@@ -56,7 +56,7 @@ mod tests {
assert!( assert!(
network network
.handle_sonarr_event(SonarrEvent::ToggleSeasonMonitoring((1, 1))) .handle_sonarr_event(SonarrEvent::ToggleSeasonMonitoring(1, 1))
.await .await
.is_ok() .is_ok()
); );
@@ -117,7 +117,7 @@ mod tests {
let (mock, app, _server) = MockServarrApi::get() let (mock, app, _server) = MockServarrApi::get()
.returns(release_json) .returns(release_json)
.query("seriesId=1&seasonNumber=1") .query("seriesId=1&seasonNumber=1")
.build_for(SonarrEvent::GetSeasonReleases((1, 1))) .build_for(SonarrEvent::GetSeasonReleases(1, 1))
.await; .await;
app app
.lock() .lock()
@@ -138,7 +138,7 @@ mod tests {
let mut network = test_network(&app); let mut network = test_network(&app);
let SonarrSerdeable::Releases(releases_vec) = network let SonarrSerdeable::Releases(releases_vec) = network
.handle_sonarr_event(SonarrEvent::GetSeasonReleases((1, 1))) .handle_sonarr_event(SonarrEvent::GetSeasonReleases(1, 1))
.await .await
.unwrap() .unwrap()
else { else {
@@ -203,7 +203,7 @@ mod tests {
let (mock, app, _server) = MockServarrApi::get() let (mock, app, _server) = MockServarrApi::get()
.returns(release_json) .returns(release_json)
.query("seriesId=1&seasonNumber=1") .query("seriesId=1&seasonNumber=1")
.build_for(SonarrEvent::GetSeasonReleases((1, 1))) .build_for(SonarrEvent::GetSeasonReleases(1, 1))
.await; .await;
app app
.lock() .lock()
@@ -224,7 +224,7 @@ mod tests {
assert!( assert!(
network network
.handle_sonarr_event(SonarrEvent::GetSeasonReleases((1, 1))) .handle_sonarr_event(SonarrEvent::GetSeasonReleases(1, 1))
.await .await
.is_ok() .is_ok()
); );
@@ -291,7 +291,7 @@ mod tests {
let (mock, app, _server) = MockServarrApi::get() let (mock, app, _server) = MockServarrApi::get()
.returns(history_json) .returns(history_json)
.query("seriesId=1&seasonNumber=1") .query("seriesId=1&seasonNumber=1")
.build_for(SonarrEvent::GetSeasonHistory((1, 1))) .build_for(SonarrEvent::GetSeasonHistory(1, 1))
.await; .await;
app.lock().await.data.sonarr_data.season_details_modal = Some(SeasonDetailsModal::default()); app.lock().await.data.sonarr_data.season_details_modal = Some(SeasonDetailsModal::default());
app app
@@ -322,7 +322,7 @@ mod tests {
let mut network = test_network(&app); let mut network = test_network(&app);
let SonarrSerdeable::SonarrHistoryItems(history) = network let SonarrSerdeable::SonarrHistoryItems(history) = network
.handle_sonarr_event(SonarrEvent::GetSeasonHistory((1, 1))) .handle_sonarr_event(SonarrEvent::GetSeasonHistory(1, 1))
.await .await
.unwrap() .unwrap()
else { else {
@@ -403,7 +403,7 @@ mod tests {
let (mock, app, _server) = MockServarrApi::get() let (mock, app, _server) = MockServarrApi::get()
.returns(history_json) .returns(history_json)
.query("seriesId=1&seasonNumber=1") .query("seriesId=1&seasonNumber=1")
.build_for(SonarrEvent::GetSeasonHistory((1, 1))) .build_for(SonarrEvent::GetSeasonHistory(1, 1))
.await; .await;
app app
.lock() .lock()
@@ -423,7 +423,7 @@ mod tests {
let mut network = test_network(&app); let mut network = test_network(&app);
let SonarrSerdeable::SonarrHistoryItems(history) = network let SonarrSerdeable::SonarrHistoryItems(history) = network
.handle_sonarr_event(SonarrEvent::GetSeasonHistory((1, 1))) .handle_sonarr_event(SonarrEvent::GetSeasonHistory(1, 1))
.await .await
.unwrap() .unwrap()
else { else {
@@ -499,7 +499,7 @@ mod tests {
let (mock, app, _server) = MockServarrApi::get() let (mock, app, _server) = MockServarrApi::get()
.returns(history_json) .returns(history_json)
.query("seriesId=1&seasonNumber=1") .query("seriesId=1&seasonNumber=1")
.build_for(SonarrEvent::GetSeasonHistory((1, 1))) .build_for(SonarrEvent::GetSeasonHistory(1, 1))
.await; .await;
app.lock().await.data.sonarr_data.season_details_modal = Some(SeasonDetailsModal::default()); app.lock().await.data.sonarr_data.season_details_modal = Some(SeasonDetailsModal::default());
app app
@@ -520,7 +520,7 @@ mod tests {
let mut network = test_network(&app); let mut network = test_network(&app);
let SonarrSerdeable::SonarrHistoryItems(history) = network let SonarrSerdeable::SonarrHistoryItems(history) = network
.handle_sonarr_event(SonarrEvent::GetSeasonHistory((1, 1))) .handle_sonarr_event(SonarrEvent::GetSeasonHistory(1, 1))
.await .await
.unwrap() .unwrap()
else { else {
@@ -563,14 +563,14 @@ mod tests {
"seasonNumber": 1 "seasonNumber": 1
})) }))
.returns(json!({})) .returns(json!({}))
.build_for(SonarrEvent::TriggerAutomaticSeasonSearch((1, 1))) .build_for(SonarrEvent::TriggerAutomaticSeasonSearch(1, 1))
.await; .await;
app.lock().await.server_tabs.next(); app.lock().await.server_tabs.next();
let mut network = test_network(&app); let mut network = test_network(&app);
assert!( assert!(
network network
.handle_sonarr_event(SonarrEvent::TriggerAutomaticSeasonSearch((1, 1))) .handle_sonarr_event(SonarrEvent::TriggerAutomaticSeasonSearch(1, 1))
.await .await
.is_ok() .is_ok()
); );
+16 -16
View File
@@ -65,8 +65,8 @@ pub enum SonarrEvent {
GetQueuedEvents, GetQueuedEvents,
GetRootFolders, GetRootFolders,
GetEpisodeReleases(i64), GetEpisodeReleases(i64),
GetSeasonHistory((i64, i64)), GetSeasonHistory(i64, i64),
GetSeasonReleases((i64, i64)), GetSeasonReleases(i64, i64),
GetSecurityConfig, GetSecurityConfig,
GetSeriesDetails(i64), GetSeriesDetails(i64),
GetSeriesHistory(i64), GetSeriesHistory(i64),
@@ -81,11 +81,11 @@ pub enum SonarrEvent {
StartTask(SonarrTaskName), StartTask(SonarrTaskName),
TestIndexer(i64), TestIndexer(i64),
TestAllIndexers, TestAllIndexers,
ToggleSeasonMonitoring((i64, i64)), ToggleSeasonMonitoring(i64, i64),
ToggleSeriesMonitoring(i64), ToggleSeriesMonitoring(i64),
ToggleEpisodeMonitoring(i64), ToggleEpisodeMonitoring(i64),
TriggerAutomaticEpisodeSearch(i64), TriggerAutomaticEpisodeSearch(i64),
TriggerAutomaticSeasonSearch((i64, i64)), TriggerAutomaticSeasonSearch(i64, i64),
TriggerAutomaticSeriesSearch(i64), TriggerAutomaticSeriesSearch(i64),
UpdateAllSeries, UpdateAllSeries,
UpdateAndScanSeries(i64), UpdateAndScanSeries(i64),
@@ -118,7 +118,7 @@ impl NetworkResource for SonarrEvent {
SonarrEvent::GetQueuedEvents SonarrEvent::GetQueuedEvents
| SonarrEvent::StartTask(_) | SonarrEvent::StartTask(_)
| SonarrEvent::TriggerAutomaticSeriesSearch(_) | SonarrEvent::TriggerAutomaticSeriesSearch(_)
| SonarrEvent::TriggerAutomaticSeasonSearch(_) | SonarrEvent::TriggerAutomaticSeasonSearch(_, _)
| SonarrEvent::TriggerAutomaticEpisodeSearch(_) | SonarrEvent::TriggerAutomaticEpisodeSearch(_)
| SonarrEvent::UpdateAllSeries | SonarrEvent::UpdateAllSeries
| SonarrEvent::UpdateAndScanSeries(_) | SonarrEvent::UpdateAndScanSeries(_)
@@ -126,8 +126,8 @@ impl NetworkResource for SonarrEvent {
SonarrEvent::GetRootFolders SonarrEvent::GetRootFolders
| SonarrEvent::DeleteRootFolder(_) | SonarrEvent::DeleteRootFolder(_)
| SonarrEvent::AddRootFolder(_) => "/rootfolder", | SonarrEvent::AddRootFolder(_) => "/rootfolder",
SonarrEvent::GetSeasonReleases(_) | SonarrEvent::GetEpisodeReleases(_) => "/release", SonarrEvent::GetSeasonReleases(_, _) | SonarrEvent::GetEpisodeReleases(_) => "/release",
SonarrEvent::GetSeriesHistory(_) | SonarrEvent::GetSeasonHistory(_) => "/history/series", SonarrEvent::GetSeriesHistory(_) | SonarrEvent::GetSeasonHistory(_, _) => "/history/series",
SonarrEvent::GetStatus => "/system/status", SonarrEvent::GetStatus => "/system/status",
SonarrEvent::GetTasks => "/system/task", SonarrEvent::GetTasks => "/system/task",
SonarrEvent::GetUpdates => "/update", SonarrEvent::GetUpdates => "/update",
@@ -137,7 +137,7 @@ impl NetworkResource for SonarrEvent {
| SonarrEvent::GetSeriesDetails(_) | SonarrEvent::GetSeriesDetails(_)
| SonarrEvent::DeleteSeries(_) | SonarrEvent::DeleteSeries(_)
| SonarrEvent::EditSeries(_) | SonarrEvent::EditSeries(_)
| SonarrEvent::ToggleSeasonMonitoring(_) | SonarrEvent::ToggleSeasonMonitoring(_, _)
| SonarrEvent::ToggleSeriesMonitoring(_) => "/series", | SonarrEvent::ToggleSeriesMonitoring(_) => "/series",
SonarrEvent::SearchNewSeries(_) => "/series/lookup", SonarrEvent::SearchNewSeries(_) => "/series/lookup",
SonarrEvent::MarkHistoryItemAsFailed(_) => "/history/failed", SonarrEvent::MarkHistoryItemAsFailed(_) => "/history/failed",
@@ -275,12 +275,12 @@ impl Network<'_, '_> {
.get_episode_releases(params) .get_episode_releases(params)
.await .await
.map(SonarrSerdeable::from), .map(SonarrSerdeable::from),
SonarrEvent::GetSeasonHistory(params) => self SonarrEvent::GetSeasonHistory(series_id, season_number) => self
.get_sonarr_season_history(params) .get_sonarr_season_history(series_id, season_number)
.await .await
.map(SonarrSerdeable::from), .map(SonarrSerdeable::from),
SonarrEvent::GetSeasonReleases(params) => self SonarrEvent::GetSeasonReleases(series_id, season_number) => self
.get_season_releases(params) .get_season_releases(series_id, season_number)
.await .await
.map(SonarrSerdeable::from), .map(SonarrSerdeable::from),
SonarrEvent::GetSecurityConfig => self SonarrEvent::GetSecurityConfig => self
@@ -328,16 +328,16 @@ impl Network<'_, '_> {
.toggle_sonarr_episode_monitoring(episode_id) .toggle_sonarr_episode_monitoring(episode_id)
.await .await
.map(SonarrSerdeable::from), .map(SonarrSerdeable::from),
SonarrEvent::ToggleSeasonMonitoring(params) => self SonarrEvent::ToggleSeasonMonitoring(series_id, season_number) => self
.toggle_sonarr_season_monitoring(params) .toggle_sonarr_season_monitoring(series_id, season_number)
.await .await
.map(SonarrSerdeable::from), .map(SonarrSerdeable::from),
SonarrEvent::ToggleSeriesMonitoring(series_id) => self SonarrEvent::ToggleSeriesMonitoring(series_id) => self
.toggle_sonarr_series_monitoring(series_id) .toggle_sonarr_series_monitoring(series_id)
.await .await
.map(SonarrSerdeable::from), .map(SonarrSerdeable::from),
SonarrEvent::TriggerAutomaticSeasonSearch(params) => self SonarrEvent::TriggerAutomaticSeasonSearch(series_id, season_number) => self
.trigger_automatic_season_search(params) .trigger_automatic_season_search(series_id, season_number)
.await .await
.map(SonarrSerdeable::from), .map(SonarrSerdeable::from),
SonarrEvent::TriggerAutomaticSeriesSearch(series_id) => self SonarrEvent::TriggerAutomaticSeriesSearch(series_id) => self
@@ -43,8 +43,8 @@ mod test {
SonarrEvent::GetSeriesDetails(0), SonarrEvent::GetSeriesDetails(0),
SonarrEvent::DeleteSeries(DeleteSeriesParams::default()), SonarrEvent::DeleteSeries(DeleteSeriesParams::default()),
SonarrEvent::EditSeries(EditSeriesParams::default()), SonarrEvent::EditSeries(EditSeriesParams::default()),
SonarrEvent::ToggleSeasonMonitoring((0, 0)), SonarrEvent::ToggleSeasonMonitoring(0, 0),
SonarrEvent::ToggleSeriesMonitoring(0), SonarrEvent::ToggleSeriesMonitoring(0)
)] )]
event: SonarrEvent, event: SonarrEvent,
) { ) {
@@ -76,7 +76,7 @@ mod test {
SonarrEvent::GetQueuedEvents, SonarrEvent::GetQueuedEvents,
SonarrEvent::StartTask(SonarrTaskName::default()), SonarrEvent::StartTask(SonarrTaskName::default()),
SonarrEvent::TriggerAutomaticEpisodeSearch(0), SonarrEvent::TriggerAutomaticEpisodeSearch(0),
SonarrEvent::TriggerAutomaticSeasonSearch((0, 0)), SonarrEvent::TriggerAutomaticSeasonSearch(0, 0),
SonarrEvent::TriggerAutomaticSeriesSearch(0), SonarrEvent::TriggerAutomaticSeriesSearch(0),
SonarrEvent::UpdateAllSeries, SonarrEvent::UpdateAllSeries,
SonarrEvent::UpdateAndScanSeries(0), SonarrEvent::UpdateAndScanSeries(0),
@@ -108,10 +108,7 @@ mod test {
#[rstest] #[rstest]
fn test_resource_series_history( fn test_resource_series_history(
#[values( #[values(SonarrEvent::GetSeriesHistory(0), SonarrEvent::GetSeasonHistory(0, 0))]
SonarrEvent::GetSeriesHistory(0),
SonarrEvent::GetSeasonHistory((0, 0))
)]
event: SonarrEvent, event: SonarrEvent,
) { ) {
assert_str_eq!(event.resource(), "/history/series"); assert_str_eq!(event.resource(), "/history/series");
@@ -139,7 +136,7 @@ mod test {
#[rstest] #[rstest]
fn test_resource_release( fn test_resource_release(
#[values( #[values(
SonarrEvent::GetSeasonReleases((0, 0)), SonarrEvent::GetSeasonReleases(0, 0),
SonarrEvent::GetEpisodeReleases(0) SonarrEvent::GetEpisodeReleases(0)
)] )]
event: SonarrEvent, event: SonarrEvent,