diff --git a/src/app/sonarr/mod.rs b/src/app/sonarr/mod.rs index 3d2bb82..dd43756 100644 --- a/src/app/sonarr/mod.rs +++ b/src/app/sonarr/mod.rs @@ -103,7 +103,7 @@ impl<'a> App<'a> { } ActiveSonarrBlock::History => { self - .dispatch_network_event(SonarrEvent::GetHistory(None).into()) + .dispatch_network_event(SonarrEvent::GetHistory(500).into()) .await; } ActiveSonarrBlock::RootFolders => { diff --git a/src/app/sonarr/sonarr_tests.rs b/src/app/sonarr/sonarr_tests.rs index 8237f7a..ff580fa 100644 --- a/src/app/sonarr/sonarr_tests.rs +++ b/src/app/sonarr/sonarr_tests.rs @@ -293,7 +293,7 @@ mod tests { assert!(app.is_loading); assert_eq!( sync_network_rx.recv().await.unwrap(), - SonarrEvent::GetHistory(None).into() + SonarrEvent::GetHistory(500).into() ); assert!(!app.data.sonarr_data.prompt_confirm); assert_eq!(app.tick_count, 0); diff --git a/src/cli/sonarr/list_command_handler.rs b/src/cli/sonarr/list_command_handler.rs index 1603308..17272ae 100644 --- a/src/cli/sonarr/list_command_handler.rs +++ b/src/cli/sonarr/list_command_handler.rs @@ -184,7 +184,7 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, SonarrListCommand> for SonarrListCommandH SonarrListCommand::History { events: items } => { let resp = self .network - .handle_network_event(SonarrEvent::GetHistory(Some(items)).into()) + .handle_network_event(SonarrEvent::GetHistory(items).into()) .await?; serde_json::to_string_pretty(&resp)? } diff --git a/src/cli/sonarr/list_command_handler_tests.rs b/src/cli/sonarr/list_command_handler_tests.rs index c333193..8bfc9b5 100644 --- a/src/cli/sonarr/list_command_handler_tests.rs +++ b/src/cli/sonarr/list_command_handler_tests.rs @@ -381,7 +381,7 @@ mod tests { mock_network .expect_handle_network_event() .with(eq::( - SonarrEvent::GetHistory(Some(expected_events)).into(), + SonarrEvent::GetHistory(expected_events).into(), )) .times(1) .returning(|_| { diff --git a/src/network/sonarr_network.rs b/src/network/sonarr_network.rs index a343ce5..3f5ab32 100644 --- a/src/network/sonarr_network.rs +++ b/src/network/sonarr_network.rs @@ -56,7 +56,7 @@ pub enum SonarrEvent { GetAllIndexerSettings, GetBlocklist, GetDownloads, - GetHistory(Option), + GetHistory(u64), GetHostConfig, GetIndexers, GetEpisodeDetails(Option), @@ -1451,14 +1451,11 @@ impl<'a, 'b> Network<'a, 'b> { .await } - async fn get_sonarr_history(&mut self, events: Option) -> Result { + async fn get_sonarr_history(&mut self, events: u64) -> Result { info!("Fetching all Sonarr history events"); let event = SonarrEvent::GetHistory(events); - let params = format!( - "pageSize={}&sortDirection=descending&sortKey=date", - events.unwrap_or(500) - ); + let params = format!("pageSize={}&sortDirection=descending&sortKey=date", events); let request_props = self .request_props_from(event, RequestMethod::Get, None::<()>, None, Some(params)) .await; diff --git a/src/network/sonarr_network_tests.rs b/src/network/sonarr_network_tests.rs index 76183ff..cd63515 100644 --- a/src/network/sonarr_network_tests.rs +++ b/src/network/sonarr_network_tests.rs @@ -220,8 +220,7 @@ mod test { #[rstest] fn test_resource_history( - #[values(SonarrEvent::GetHistory(None), SonarrEvent::GetEpisodeHistory(None))] - event: SonarrEvent, + #[values(SonarrEvent::GetHistory(0), SonarrEvent::GetEpisodeHistory(None))] event: SonarrEvent, ) { assert_str_eq!(event.resource(), "/history"); } @@ -2399,7 +2398,7 @@ mod test { None, Some(history_json), None, - SonarrEvent::GetHistory(None), + SonarrEvent::GetHistory(500), None, Some("pageSize=500&sortDirection=descending&sortKey=date"), ) @@ -2429,78 +2428,7 @@ mod test { let mut network = Network::new(&app_arc, CancellationToken::new(), Client::new()); if let SonarrSerdeable::SonarrHistoryWrapper(history) = network - .handle_sonarr_event(SonarrEvent::GetHistory(None)) - .await - .unwrap() - { - async_server.assert_async().await; - assert_eq!( - app_arc.lock().await.data.sonarr_data.history.items, - expected_history_items - ); - assert!(app_arc.lock().await.data.sonarr_data.history.sort_asc); - assert_eq!(history, response); - } - } - - #[tokio::test] - async fn test_handle_get_sonarr_history_event_uses_provided_items() { - let history_json = json!({"records": [{ - "id": 123, - "sourceTitle": "z episode", - "episodeId": 1007, - "quality": { "quality": { "name": "Bluray-1080p" } }, - "languages": [{ "id": 1, "name": "English" }], - "date": "2024-02-10T07:28:45Z", - "eventType": "grabbed", - "data": { - "droppedPath": "/nfs/nzbget/completed/series/Coolness/something.cool.mkv", - "importedPath": "/nfs/tv/Coolness/Season 1/Coolness - S01E01 - Something Cool Bluray-1080p.mkv" - } - }, - { - "id": 456, - "sourceTitle": "A Episode", - "episodeId": 2001, - "quality": { "quality": { "name": "Bluray-1080p" } }, - "languages": [{ "id": 1, "name": "English" }], - "date": "2024-02-10T07:28:45Z", - "eventType": "grabbed", - "data": { - "droppedPath": "/nfs/nzbget/completed/series/Coolness/something.cool.mkv", - "importedPath": "/nfs/tv/Coolness/Season 1/Coolness - S01E01 - Something Cool Bluray-1080p.mkv" - } - }]}); - let response: SonarrHistoryWrapper = serde_json::from_value(history_json.clone()).unwrap(); - let expected_history_items = vec![ - SonarrHistoryItem { - id: 123, - episode_id: 1007, - source_title: "z episode".into(), - ..history_item() - }, - SonarrHistoryItem { - id: 456, - episode_id: 2001, - source_title: "A Episode".into(), - ..history_item() - }, - ]; - let (async_server, app_arc, _server) = mock_servarr_api( - RequestMethod::Get, - None, - Some(history_json), - None, - SonarrEvent::GetHistory(Some(1000)), - None, - Some("pageSize=1000&sortDirection=descending&sortKey=date"), - ) - .await; - app_arc.lock().await.data.sonarr_data.history.sort_asc = true; - let mut network = Network::new(&app_arc, CancellationToken::new(), Client::new()); - - if let SonarrSerdeable::SonarrHistoryWrapper(history) = network - .handle_sonarr_event(SonarrEvent::GetHistory(Some(1000))) + .handle_sonarr_event(SonarrEvent::GetHistory(500)) .await .unwrap() { @@ -2548,7 +2476,7 @@ mod test { None, Some(history_json), None, - SonarrEvent::GetHistory(None), + SonarrEvent::GetHistory(500), None, Some("pageSize=500&sortDirection=descending&sortKey=date"), ) @@ -2578,7 +2506,7 @@ mod test { let mut network = Network::new(&app_arc, CancellationToken::new(), Client::new()); if let SonarrSerdeable::SonarrHistoryWrapper(history) = network - .handle_sonarr_event(SonarrEvent::GetHistory(None)) + .handle_sonarr_event(SonarrEvent::GetHistory(500)) .await .unwrap() {