Did some cleanup

This commit is contained in:
2023-08-08 10:50:07 -06:00
parent cf11527fef
commit e253ca8359
5 changed files with 69 additions and 70 deletions
-3
View File
@@ -1,6 +1,5 @@
use anyhow::anyhow;
use log::{debug, error};
use reqwest::Client;
use serde::{Deserialize, Serialize};
use tokio::sync::mpsc::Sender;
use tokio::time::Instant;
@@ -23,7 +22,6 @@ pub struct App<'a> {
pub server_tabs: TabState,
pub error: HorizontallyScrollableText,
pub response: String,
pub client: Client,
pub title: &'static str,
pub tick_until_poll: u64,
pub ticks_until_scroll: u64,
@@ -135,7 +133,6 @@ impl<'a> Default for App<'a> {
contextual_help: None,
},
]),
client: Client::new(),
title: "Managarr",
tick_until_poll: 400,
ticks_until_scroll: 4,
+1 -1
View File
@@ -58,7 +58,7 @@ async fn main() -> Result<()> {
#[tokio::main]
async fn start_networking(mut network_rx: Receiver<NetworkEvent>, app: &Arc<Mutex<App<'_>>>) {
let network = Network::new(reqwest::Client::new(), app);
let network = Network::new(app);
while let Some(network_event) = network_rx.recv().await {
network.handle_network_event(network_event).await;
+11 -9
View File
@@ -20,19 +20,22 @@ mod utils;
#[path = "network_tests.rs"]
mod network_tests;
#[derive(PartialEq, Eq, Debug)]
#[derive(PartialEq, Eq, Debug, Clone, Copy)]
pub enum NetworkEvent {
Radarr(RadarrEvent),
}
pub struct Network<'a, 'b> {
pub client: Client,
client: Client,
pub app: &'a Arc<Mutex<App<'b>>>,
}
impl<'a, 'b> Network<'a, 'b> {
pub fn new(client: Client, app: &'a Arc<Mutex<App<'b>>>) -> Self {
Network { client, app }
pub fn new(app: &'a Arc<Mutex<App<'b>>>) -> Self {
Network {
client: Client::new(),
app,
}
}
pub async fn handle_network_event(&self, network_event: NetworkEvent) {
@@ -116,25 +119,24 @@ impl<'a, 'b> Network<'a, 'b> {
api_token,
} = request_props;
debug!("Creating RequestBuilder for resource: {:?}", uri);
let app = self.app.lock().await;
debug!(
"Sending {:?} request to {} with body {:?}",
method, uri, body
);
match method {
RequestMethod::Get => app.client.get(uri).header("X-Api-Key", api_token),
RequestMethod::Post => app
RequestMethod::Get => self.client.get(uri).header("X-Api-Key", api_token),
RequestMethod::Post => self
.client
.post(uri)
.json(&body.unwrap_or_default())
.header("X-Api-Key", api_token),
RequestMethod::Put => app
RequestMethod::Put => self
.client
.put(uri)
.json(&body.unwrap_or_default())
.header("X-Api-Key", api_token),
RequestMethod::Delete => app.client.delete(uri).header("X-Api-Key", api_token),
RequestMethod::Delete => self.client.delete(uri).header("X-Api-Key", api_token),
}
}
}
+8 -8
View File
@@ -38,7 +38,7 @@ mod tests {
};
app.config.radarr = radarr_config;
let app_arc = Arc::new(Mutex::new(app));
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_network_event(RadarrEvent::HealthCheck.into())
@@ -62,7 +62,7 @@ mod tests {
.create_async()
.await;
let app_arc = Arc::new(Mutex::new(App::default()));
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_request::<Test, ()>(
@@ -87,7 +87,7 @@ mod tests {
#[values(RequestMethod::Get, RequestMethod::Post)] request_method: RequestMethod,
) {
let (async_server, app_arc, server) = mock_api(request_method, 200, true).await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_request::<(), Test>(
@@ -116,7 +116,7 @@ mod tests {
.create_async()
.await;
let app_arc = Arc::new(Mutex::new(App::default()));
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_request::<(), Test>(
@@ -142,7 +142,7 @@ mod tests {
#[tokio::test]
async fn test_handle_request_failure_to_send_request() {
let app_arc = Arc::new(Mutex::new(App::default()));
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_request::<(), Test>(
@@ -176,7 +176,7 @@ mod tests {
request_method: RequestMethod,
) {
let (async_server, app_arc, server) = mock_api(request_method, 404, true).await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_request::<(), Test>(
@@ -200,7 +200,7 @@ mod tests {
#[tokio::test]
async fn test_handle_request_non_success_code_empty_response_body() {
let (async_server, app_arc, server) = mock_api(RequestMethod::Post, 404, false).await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_request::<(), Test>(
@@ -252,7 +252,7 @@ mod tests {
async_server = async_server.create_async().await;
let app_arc = Arc::new(Mutex::new(App::default()));
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.call_api(RequestProps {
+49 -49
View File
@@ -194,7 +194,7 @@ mod test {
RadarrEvent::HealthCheck.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.handle_radarr_event(RadarrEvent::HealthCheck).await;
@@ -219,7 +219,7 @@ mod test {
RadarrEvent::GetOverview.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.handle_radarr_event(RadarrEvent::GetOverview).await;
@@ -251,7 +251,7 @@ mod test {
RadarrEvent::GetStatus.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.handle_radarr_event(RadarrEvent::GetStatus).await;
@@ -273,7 +273,7 @@ mod test {
RadarrEvent::GetMovies.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.handle_radarr_event(RadarrEvent::GetMovies).await;
@@ -311,7 +311,7 @@ mod test {
.radarr_data
.movies
.set_items(vec![movie()]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.handle_radarr_event(RadarrEvent::GetReleases).await;
@@ -357,7 +357,7 @@ mod test {
)
.await;
app_arc.lock().await.data.radarr_data.search = "test term".to_owned().into();
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::SearchNewMovie)
@@ -397,7 +397,7 @@ mod test {
task_name: "TestTask".to_owned(),
..Task::default()
}]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.handle_radarr_event(RadarrEvent::StartTask).await;
@@ -413,7 +413,7 @@ mod test {
let (async_server, app_arc, _server) =
mock_radarr_api(RequestMethod::Get, None, Some(json!([])), &resource).await;
app_arc.lock().await.data.radarr_data.search = "test term".to_owned().into();
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::SearchNewMovie)
@@ -453,7 +453,7 @@ mod test {
.radarr_data
.movies
.set_items(vec![movie()]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::TriggerAutomaticSearch)
@@ -481,7 +481,7 @@ mod test {
.radarr_data
.movies
.set_items(vec![movie()]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::UpdateAndScan)
@@ -502,7 +502,7 @@ mod test {
RadarrEvent::UpdateAllMovies.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::UpdateAllMovies)
@@ -522,7 +522,7 @@ mod test {
RadarrEvent::UpdateDownloads.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::UpdateDownloads)
@@ -553,7 +553,7 @@ mod test {
.await;
app_arc.lock().await.data.radarr_data.indexer_settings = Some(indexer_settings());
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::UpdateIndexerSettings)
@@ -580,7 +580,7 @@ mod test {
RadarrEvent::UpdateCollections.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::UpdateCollections)
@@ -608,7 +608,7 @@ mod test {
.set_items(vec![movie()]);
app_arc.lock().await.data.radarr_data.quality_profile_map =
BiMap::from_iter([(2222, "HD - 1080p".to_owned())]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::GetMovieDetails)
@@ -715,7 +715,7 @@ mod test {
.set_items(vec![movie()]);
app_arc.lock().await.data.radarr_data.quality_profile_map =
BiMap::from_iter([(2222, "HD - 1080p".to_owned())]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::GetMovieDetails)
@@ -795,7 +795,7 @@ mod test {
.radarr_data
.movies
.set_items(vec![movie()]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::GetMovieHistory)
@@ -846,7 +846,7 @@ mod test {
RadarrEvent::GetCollections.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::GetCollections)
@@ -881,7 +881,7 @@ mod test {
RadarrEvent::GetDownloads.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.handle_radarr_event(RadarrEvent::GetDownloads).await;
@@ -946,7 +946,7 @@ mod test {
RadarrEvent::GetIndexers.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.handle_radarr_event(RadarrEvent::GetIndexers).await;
@@ -977,7 +977,7 @@ mod test {
RadarrEvent::GetIndexerSettings.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::GetIndexerSettings)
@@ -1021,7 +1021,7 @@ mod test {
RadarrEvent::GetQueuedEvents.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::GetQueuedEvents)
@@ -1076,7 +1076,7 @@ mod test {
&resource,
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.handle_radarr_event(RadarrEvent::GetLogs).await;
@@ -1109,7 +1109,7 @@ mod test {
RadarrEvent::GetQualityProfiles.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::GetQualityProfiles)
@@ -1135,7 +1135,7 @@ mod test {
RadarrEvent::GetTags.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.handle_radarr_event(RadarrEvent::GetTags).await;
@@ -1190,7 +1190,7 @@ mod test {
RadarrEvent::GetTasks.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.handle_radarr_event(RadarrEvent::GetTasks).await;
@@ -1279,7 +1279,7 @@ mod test {
RadarrEvent::GetUpdates.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.handle_radarr_event(RadarrEvent::GetUpdates).await;
@@ -1301,7 +1301,7 @@ mod test {
.await;
app_arc.lock().await.data.radarr_data.tags_map =
BiMap::from_iter([(1, "usenet".to_owned()), (2, "test".to_owned())]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.add_tag("testing".to_owned()).await;
@@ -1331,7 +1331,7 @@ mod test {
RadarrEvent::GetRootFolders.resource(),
)
.await;
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::GetRootFolders)
@@ -1369,7 +1369,7 @@ mod test {
.radarr_data
.movies
.set_items(vec![movie()]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::GetMovieCredits)
@@ -1400,7 +1400,7 @@ mod test {
app.data.radarr_data.delete_movie_files = true;
app.data.radarr_data.add_list_exclusion = true;
}
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.handle_radarr_event(RadarrEvent::DeleteMovie).await;
@@ -1421,7 +1421,7 @@ mod test {
.radarr_data
.downloads
.set_items(vec![download_record()]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::DeleteDownload)
@@ -1442,7 +1442,7 @@ mod test {
.radarr_data
.indexers
.set_items(vec![indexer()]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::DeleteIndexer)
@@ -1463,7 +1463,7 @@ mod test {
.radarr_data
.root_folders
.set_items(vec![root_folder()]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::DeleteRootFolder)
@@ -1548,7 +1548,7 @@ mod test {
.set_items(vec![add_movie_search_result()]);
}
}
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.handle_radarr_event(RadarrEvent::AddMovie).await;
@@ -1568,7 +1568,7 @@ mod test {
.await;
app_arc.lock().await.data.radarr_data.edit_path = HorizontallyScrollableText::from("/nfs/test");
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::AddRootFolder)
@@ -1636,7 +1636,7 @@ mod test {
app.data.radarr_data.quality_profile_map =
BiMap::from_iter([(1111, "Any".to_owned()), (2222, "HD - 1080p".to_owned())]);
}
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network.handle_radarr_event(RadarrEvent::EditMovie).await;
@@ -1731,7 +1731,7 @@ mod test {
app.data.radarr_data.quality_profile_map =
BiMap::from_iter([(1111, "Any".to_owned()), (2222, "HD - 1080p".to_owned())]);
}
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::EditCollection)
@@ -1765,7 +1765,7 @@ mod test {
.radarr_data
.movie_releases
.set_items(vec![release()]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
network
.handle_radarr_event(RadarrEvent::DownloadRelease)
@@ -1787,7 +1787,7 @@ mod test {
app.data.radarr_data.quality_profile_map =
BiMap::from_iter([(1, "Any".to_owned()), (2, "HD - 1080p".to_owned())]);
}
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
assert_eq!(network.extract_quality_profile_id().await, 1);
}
@@ -1804,7 +1804,7 @@ mod test {
(3, "hi".to_owned()),
]);
}
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
assert_eq!(network.extract_and_add_tag_ids_vec().await, vec![2, 3, 1]);
}
@@ -1824,7 +1824,7 @@ mod test {
app.data.radarr_data.tags_map =
BiMap::from_iter([(1, "usenet".to_owned()), (2, "test".to_owned())]);
}
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
let tag_ids_vec = network.extract_and_add_tag_ids_vec().await;
@@ -1853,7 +1853,7 @@ mod test {
id: Number::from(1),
..Movie::default()
}]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
assert_eq!(network.extract_movie_id().await, 1);
}
@@ -1871,7 +1871,7 @@ mod test {
id: Number::from(1),
..Movie::default()
}]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
assert_eq!(network.extract_movie_id().await, 1);
}
@@ -1889,7 +1889,7 @@ mod test {
id: Number::from(1),
..Collection::default()
}]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
assert_eq!(network.extract_collection_id().await, 1);
}
@@ -1907,7 +1907,7 @@ mod test {
id: Number::from(1),
..Collection::default()
}]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
assert_eq!(network.extract_collection_id().await, 1);
}
@@ -1925,7 +1925,7 @@ mod test {
id: Number::from(1),
..Movie::default()
}]);
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
assert_str_eq!(
network.append_movie_id_param("/test").await,
@@ -1936,7 +1936,7 @@ mod test {
#[tokio::test]
async fn test_radarr_request_props_from_default_radarr_config() {
let app_arc = Arc::new(Mutex::new(App::default()));
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
let request_props = network
.radarr_request_props_from("/test", RequestMethod::Get, None::<()>)
@@ -1963,7 +1963,7 @@ mod test {
port: Some(8080),
api_token: api_token.clone(),
};
let network = Network::new(reqwest::Client::new(), &app_arc);
let network = Network::new(&app_arc);
let request_props = network
.radarr_request_props_from("/test", RequestMethod::Get, None::<()>)