diff --git a/src/handlers/radarr_handlers/radarr_handler_test_utils.rs b/src/handlers/radarr_handlers/radarr_handler_test_utils.rs index 835145c9..d277e7f2 100644 --- a/src/handlers/radarr_handlers/radarr_handler_test_utils.rs +++ b/src/handlers/radarr_handlers/radarr_handler_test_utils.rs @@ -4,11 +4,11 @@ pub(in crate::handlers::radarr_handlers) mod utils { use crate::models::HorizontallyScrollableText; use crate::models::radarr_models::{ AddMovieBody, AddMovieOptions, AddMovieSearchResult, Collection, CollectionMovie, - DownloadRecord, DownloadStatus, IndexerSettings, MediaInfo, MinimumAvailability, Movie, - MovieCollection, MovieFile, MovieMonitor, MovieStatus, RadarrRelease, Rating, RatingsList, + DownloadRecord, IndexerSettings, MediaInfo, MinimumAvailability, Movie, MovieCollection, + MovieFile, MovieMonitor, MovieStatus, RadarrRelease, Rating, RatingsList, }; use crate::models::servarr_models::{ - Indexer, IndexerField, Language, Quality, QualityWrapper, RootFolder, + DownloadStatus, Indexer, IndexerField, Language, Quality, QualityWrapper, RootFolder, }; use chrono::DateTime; use serde_json::{Number, json}; diff --git a/src/handlers/readarr_handlers/downloads/downloads_handler_tests.rs b/src/handlers/readarr_handlers/downloads/downloads_handler_tests.rs index b8666b0e..c803be20 100644 --- a/src/handlers/readarr_handlers/downloads/downloads_handler_tests.rs +++ b/src/handlers/readarr_handlers/downloads/downloads_handler_tests.rs @@ -11,8 +11,9 @@ mod tests { use crate::event::Key; use crate::handlers::KeyEventHandler; use crate::handlers::readarr_handlers::downloads::DownloadsHandler; - use crate::models::readarr_models::{DownloadRecord, DownloadStatus}; + use crate::models::readarr_models::DownloadRecord; use crate::models::servarr_data::readarr::readarr_data::{ActiveReadarrBlock, DOWNLOADS_BLOCKS}; + use crate::models::servarr_models::DownloadStatus; mod test_handle_delete { use pretty_assertions::assert_eq; diff --git a/src/handlers/sonarr_handlers/sonarr_handler_test_utils.rs b/src/handlers/sonarr_handlers/sonarr_handler_test_utils.rs index 88f1874a..24f6e166 100644 --- a/src/handlers/sonarr_handlers/sonarr_handler_test_utils.rs +++ b/src/handlers/sonarr_handlers/sonarr_handler_test_utils.rs @@ -4,12 +4,12 @@ pub(in crate::handlers::sonarr_handlers) mod utils { use crate::models::HorizontallyScrollableText; use crate::models::servarr_models::IndexerSettings; use crate::models::servarr_models::{ - Indexer, IndexerField, Language, Quality, QualityWrapper, RootFolder, + DownloadStatus, Indexer, IndexerField, Language, Quality, QualityWrapper, RootFolder, }; use crate::models::sonarr_models::{ - AddSeriesSearchResult, AddSeriesSearchResultStatistics, DownloadRecord, DownloadStatus, - Episode, EpisodeFile, MediaInfo, Rating, Season, SeasonStatistics, Series, SeriesStatistics, - SeriesStatus, SeriesType, + AddSeriesSearchResult, AddSeriesSearchResultStatistics, DownloadRecord, Episode, EpisodeFile, + MediaInfo, Rating, Season, SeasonStatistics, Series, SeriesStatistics, SeriesStatus, + SeriesType, }; use chrono::DateTime; use serde_json::{Number, json}; diff --git a/src/models/lidarr_models.rs b/src/models/lidarr_models.rs index 3d22bab6..1b466d55 100644 --- a/src/models/lidarr_models.rs +++ b/src/models/lidarr_models.rs @@ -1,8 +1,8 @@ use super::{ HorizontallyScrollableText, Serdeable, servarr_models::{ - DiskSpace, HostConfig, Indexer, IndexerTestResult, MetadataProfile, QualityProfile, - QualityWrapper, RootFolder, SecurityConfig, SystemStatus, Tag, + DiskSpace, DownloadStatus, HostConfig, Indexer, IndexerTestResult, MetadataProfile, + QualityProfile, QualityWrapper, RootFolder, SecurityConfig, SystemStatus, Tag, }, }; use crate::models::servarr_models::{IndexerSettings, LogResponse, QueueEvent, Update}; @@ -181,36 +181,6 @@ pub struct DownloadRecord { impl Eq for DownloadRecord {} -#[derive( - Serialize, - Deserialize, - Default, - PartialEq, - Eq, - Clone, - Copy, - Debug, - EnumIter, - Display, - EnumDisplayStyle, -)] -#[serde(rename_all = "camelCase")] -#[strum(serialize_all = "camelCase")] -pub enum DownloadStatus { - #[default] - Unknown, - Queued, - Paused, - Downloading, - Completed, - Failed, - Warning, - Delay, - #[display_style(name = "Download Client Unavailable")] - DownloadClientUnavailable, - Fallback, -} - #[derive(Default, Clone, Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(rename_all = "camelCase")] pub struct DownloadsResponse { diff --git a/src/models/lidarr_models_tests.rs b/src/models/lidarr_models_tests.rs index 66a1f083..5abbd6a2 100644 --- a/src/models/lidarr_models_tests.rs +++ b/src/models/lidarr_models_tests.rs @@ -7,14 +7,14 @@ mod tests { use crate::models::lidarr_models::{ AddArtistSearchResult, Album, AudioTags, BlocklistItem, BlocklistResponse, DownloadRecord, - DownloadStatus, DownloadsResponse, LidarrHistoryEventType, LidarrHistoryItem, - LidarrHistoryWrapper, LidarrRelease, LidarrTask, LidarrTaskName, MediaInfo, Member, - MonitorType, NewItemMonitorType, Track, TrackFile, + DownloadsResponse, LidarrHistoryEventType, LidarrHistoryItem, LidarrHistoryWrapper, + LidarrRelease, LidarrTask, LidarrTaskName, MediaInfo, Member, MonitorType, NewItemMonitorType, + Track, TrackFile, }; use crate::models::servarr_models::{ - DiskSpace, HostConfig, Indexer, IndexerSettings, IndexerTestResult, Log, LogResponse, - MetadataProfile, QualityProfile, QueueEvent, RootFolder, SecurityConfig, SystemStatus, Tag, - Update, + DiskSpace, DownloadStatus, HostConfig, Indexer, IndexerSettings, IndexerTestResult, Log, + LogResponse, MetadataProfile, QualityProfile, QueueEvent, RootFolder, SecurityConfig, + SystemStatus, Tag, Update, }; use crate::models::{ Serdeable, @@ -659,40 +659,6 @@ mod tests { assert_str_eq!(ArtistStatus::Deleted.to_display_str(), "Deleted"); } - #[test] - fn test_download_status_display() { - assert_str_eq!(DownloadStatus::Unknown.to_string(), "unknown"); - assert_str_eq!(DownloadStatus::Queued.to_string(), "queued"); - assert_str_eq!(DownloadStatus::Paused.to_string(), "paused"); - assert_str_eq!(DownloadStatus::Downloading.to_string(), "downloading"); - assert_str_eq!(DownloadStatus::Completed.to_string(), "completed"); - assert_str_eq!(DownloadStatus::Failed.to_string(), "failed"); - assert_str_eq!(DownloadStatus::Warning.to_string(), "warning"); - assert_str_eq!(DownloadStatus::Delay.to_string(), "delay"); - assert_str_eq!( - DownloadStatus::DownloadClientUnavailable.to_string(), - "downloadClientUnavailable" - ); - assert_str_eq!(DownloadStatus::Fallback.to_string(), "fallback"); - } - - #[test] - fn test_download_status_to_display_str() { - assert_str_eq!(DownloadStatus::Unknown.to_display_str(), "Unknown"); - assert_str_eq!(DownloadStatus::Queued.to_display_str(), "Queued"); - assert_str_eq!(DownloadStatus::Paused.to_display_str(), "Paused"); - assert_str_eq!(DownloadStatus::Downloading.to_display_str(), "Downloading"); - assert_str_eq!(DownloadStatus::Completed.to_display_str(), "Completed"); - assert_str_eq!(DownloadStatus::Failed.to_display_str(), "Failed"); - assert_str_eq!(DownloadStatus::Warning.to_display_str(), "Warning"); - assert_str_eq!(DownloadStatus::Delay.to_display_str(), "Delay"); - assert_str_eq!( - DownloadStatus::DownloadClientUnavailable.to_display_str(), - "Download Client Unavailable" - ); - assert_str_eq!(DownloadStatus::Fallback.to_display_str(), "Fallback"); - } - #[test] fn test_lidarr_history_event_type_display() { assert_str_eq!(LidarrHistoryEventType::Unknown.to_string(), "unknown"); diff --git a/src/models/radarr_models.rs b/src/models/radarr_models.rs index 02a5b831..8be82e62 100644 --- a/src/models/radarr_models.rs +++ b/src/models/radarr_models.rs @@ -12,8 +12,8 @@ use strum_macros::{Display, EnumIter}; use super::Serdeable; use super::servarr_models::{ - DiskSpace, HostConfig, Indexer, Language, LogResponse, QualityProfile, QualityWrapper, - QueueEvent, RootFolder, SecurityConfig, SystemStatus, Tag, Update, + DiskSpace, DownloadStatus, HostConfig, Indexer, Language, LogResponse, QualityProfile, + QualityWrapper, QueueEvent, RootFolder, SecurityConfig, SystemStatus, Tag, Update, }; #[cfg(test)] @@ -168,36 +168,6 @@ pub struct DownloadRecord { pub download_client: String, } -#[derive( - Serialize, - Deserialize, - Default, - PartialEq, - Eq, - Clone, - Copy, - Debug, - EnumIter, - Display, - EnumDisplayStyle, -)] -#[serde(rename_all = "camelCase")] -#[strum(serialize_all = "camelCase")] -pub enum DownloadStatus { - #[default] - Unknown, - Queued, - Paused, - Downloading, - Completed, - Failed, - Warning, - Delay, - #[display_style(name = "Download Client Unavailable")] - DownloadClientUnavailable, - Fallback, -} - #[derive(Default, Clone, Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(rename_all = "camelCase")] pub struct DownloadsResponse { diff --git a/src/models/radarr_models_tests.rs b/src/models/radarr_models_tests.rs index 93e6dbf5..bd67b6e6 100644 --- a/src/models/radarr_models_tests.rs +++ b/src/models/radarr_models_tests.rs @@ -11,12 +11,13 @@ mod tests { Serdeable, radarr_models::{ AddMovieSearchResult, BlocklistItem, BlocklistResponse, Collection, Credit, CreditType, - DiskSpace, DownloadRecord, DownloadStatus, DownloadsResponse, Indexer, IndexerSettings, - IndexerTestResult, MinimumAvailability, Movie, MovieHistoryItem, MovieMonitor, MovieStatus, - QualityProfile, RadarrRelease, RadarrSerdeable, RadarrTask, RadarrTaskName, Tag, Update, + DiskSpace, DownloadRecord, DownloadsResponse, Indexer, IndexerSettings, IndexerTestResult, + MinimumAvailability, Movie, MovieHistoryItem, MovieMonitor, MovieStatus, QualityProfile, + RadarrRelease, RadarrSerdeable, RadarrTask, RadarrTaskName, Tag, Update, }, servarr_models::{ - HostConfig, Log, LogResponse, QueueEvent, RootFolder, SecurityConfig, SystemStatus, + DownloadStatus, HostConfig, Log, LogResponse, QueueEvent, RootFolder, SecurityConfig, + SystemStatus, }, }; use crate::network::radarr_network::radarr_network_test_utils::test_utils::{ @@ -88,40 +89,6 @@ mod tests { assert_str_eq!(MovieMonitor::None.to_display_str(), "None"); } - #[test] - fn test_download_status_display() { - assert_str_eq!(DownloadStatus::Unknown.to_string(), "unknown"); - assert_str_eq!(DownloadStatus::Queued.to_string(), "queued"); - assert_str_eq!(DownloadStatus::Paused.to_string(), "paused"); - assert_str_eq!(DownloadStatus::Downloading.to_string(), "downloading"); - assert_str_eq!(DownloadStatus::Completed.to_string(), "completed"); - assert_str_eq!(DownloadStatus::Failed.to_string(), "failed"); - assert_str_eq!(DownloadStatus::Warning.to_string(), "warning"); - assert_str_eq!(DownloadStatus::Delay.to_string(), "delay"); - assert_str_eq!( - DownloadStatus::DownloadClientUnavailable.to_string(), - "downloadClientUnavailable" - ); - assert_str_eq!(DownloadStatus::Fallback.to_string(), "fallback"); - } - - #[test] - fn test_download_status_to_display_str() { - assert_str_eq!(DownloadStatus::Unknown.to_display_str(), "Unknown"); - assert_str_eq!(DownloadStatus::Queued.to_display_str(), "Queued"); - assert_str_eq!(DownloadStatus::Paused.to_display_str(), "Paused"); - assert_str_eq!(DownloadStatus::Downloading.to_display_str(), "Downloading"); - assert_str_eq!(DownloadStatus::Completed.to_display_str(), "Completed"); - assert_str_eq!(DownloadStatus::Failed.to_display_str(), "Failed"); - assert_str_eq!(DownloadStatus::Warning.to_display_str(), "Warning"); - assert_str_eq!(DownloadStatus::Delay.to_display_str(), "Delay"); - assert_str_eq!( - DownloadStatus::DownloadClientUnavailable.to_display_str(), - "Download Client Unavailable" - ); - assert_str_eq!(DownloadStatus::Fallback.to_display_str(), "Fallback"); - } - #[test] fn test_radarr_history_event_type_display() { assert_str_eq!(RadarrHistoryEventType::Unknown.to_string(), "unknown"); diff --git a/src/models/readarr_models.rs b/src/models/readarr_models.rs index c924b19a..0f4cf4ac 100644 --- a/src/models/readarr_models.rs +++ b/src/models/readarr_models.rs @@ -1,8 +1,8 @@ use super::{ HorizontallyScrollableText, Serdeable, servarr_models::{ - DiskSpace, HostConfig, Indexer, IndexerTestResult, MetadataProfile, QualityProfile, - QualityWrapper, RootFolder, SecurityConfig, SystemStatus, Tag, + DiskSpace, DownloadStatus, HostConfig, Indexer, IndexerTestResult, MetadataProfile, + QualityProfile, QualityWrapper, RootFolder, SecurityConfig, SystemStatus, Tag, }, }; use crate::models::servarr_models::{IndexerSettings, LogResponse, QueueEvent, Update}; @@ -172,36 +172,6 @@ pub struct DownloadRecord { impl Eq for DownloadRecord {} -#[derive( - Serialize, - Deserialize, - Default, - PartialEq, - Eq, - Clone, - Copy, - Debug, - EnumIter, - Display, - EnumDisplayStyle, -)] -#[serde(rename_all = "camelCase")] -#[strum(serialize_all = "camelCase")] -pub enum DownloadStatus { - #[default] - Unknown, - Queued, - Paused, - Downloading, - Completed, - Failed, - Warning, - Delay, - #[display_style(name = "Download Client Unavailable")] - DownloadClientUnavailable, - Fallback, -} - #[derive(Default, Clone, Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(rename_all = "camelCase")] pub struct DownloadsResponse { diff --git a/src/models/readarr_models_tests.rs b/src/models/readarr_models_tests.rs index 867495c4..0fd62ebf 100644 --- a/src/models/readarr_models_tests.rs +++ b/src/models/readarr_models_tests.rs @@ -7,14 +7,14 @@ mod tests { use crate::models::readarr_models::{ AddAuthorSearchResult, BlocklistItem, BlocklistResponse, Book, BookFile, DownloadRecord, - DownloadStatus, DownloadsResponse, Edition, MediaInfo, MonitorType, NewItemMonitorType, + DownloadsResponse, Edition, MediaInfo, MonitorType, NewItemMonitorType, ReadarrHistoryEventType, ReadarrHistoryItem, ReadarrHistoryWrapper, ReadarrRelease, ReadarrTask, ReadarrTaskName, }; use crate::models::servarr_models::{ - DiskSpace, HostConfig, Indexer, IndexerSettings, IndexerTestResult, Log, LogResponse, - MetadataProfile, QualityProfile, QueueEvent, RootFolder, SecurityConfig, SystemStatus, Tag, - Update, + DiskSpace, DownloadStatus, HostConfig, Indexer, IndexerSettings, IndexerTestResult, Log, + LogResponse, MetadataProfile, QualityProfile, QueueEvent, RootFolder, SecurityConfig, + SystemStatus, Tag, Update, }; use crate::models::{ Serdeable, @@ -644,40 +644,6 @@ mod tests { assert_str_eq!(AuthorStatus::Deleted.to_display_str(), "Deleted"); } - #[test] - fn test_download_status_display() { - assert_str_eq!(DownloadStatus::Unknown.to_string(), "unknown"); - assert_str_eq!(DownloadStatus::Queued.to_string(), "queued"); - assert_str_eq!(DownloadStatus::Paused.to_string(), "paused"); - assert_str_eq!(DownloadStatus::Downloading.to_string(), "downloading"); - assert_str_eq!(DownloadStatus::Completed.to_string(), "completed"); - assert_str_eq!(DownloadStatus::Failed.to_string(), "failed"); - assert_str_eq!(DownloadStatus::Warning.to_string(), "warning"); - assert_str_eq!(DownloadStatus::Delay.to_string(), "delay"); - assert_str_eq!( - DownloadStatus::DownloadClientUnavailable.to_string(), - "downloadClientUnavailable" - ); - assert_str_eq!(DownloadStatus::Fallback.to_string(), "fallback"); - } - - #[test] - fn test_download_status_to_display_str() { - assert_str_eq!(DownloadStatus::Unknown.to_display_str(), "Unknown"); - assert_str_eq!(DownloadStatus::Queued.to_display_str(), "Queued"); - assert_str_eq!(DownloadStatus::Paused.to_display_str(), "Paused"); - assert_str_eq!(DownloadStatus::Downloading.to_display_str(), "Downloading"); - assert_str_eq!(DownloadStatus::Completed.to_display_str(), "Completed"); - assert_str_eq!(DownloadStatus::Failed.to_display_str(), "Failed"); - assert_str_eq!(DownloadStatus::Warning.to_display_str(), "Warning"); - assert_str_eq!(DownloadStatus::Delay.to_display_str(), "Delay"); - assert_str_eq!( - DownloadStatus::DownloadClientUnavailable.to_display_str(), - "Download Client Unavailable" - ); - assert_str_eq!(DownloadStatus::Fallback.to_display_str(), "Fallback"); - } - #[test] fn test_readarr_history_event_type_display() { assert_str_eq!(ReadarrHistoryEventType::Unknown.to_string(), "unknown"); diff --git a/src/models/servarr_data/readarr/readarr_data.rs b/src/models/servarr_data/readarr/readarr_data.rs index ba2cc4c0..df0d8379 100644 --- a/src/models/servarr_data/readarr/readarr_data.rs +++ b/src/models/servarr_data/readarr/readarr_data.rs @@ -31,10 +31,10 @@ use strum::EnumIter; use { super::modals::EditionDetailsModal, crate::models::readarr_models::{ - AuthorStatus, BookFile, BookStatistics, DownloadStatus, Edition, MediaInfo, MonitorType, - NewItemMonitorType, Ratings, ReadarrHistoryEventType, ReadarrTaskName, + AuthorStatus, BookFile, BookStatistics, Edition, MediaInfo, MonitorType, NewItemMonitorType, + Ratings, ReadarrHistoryEventType, ReadarrTaskName, }, - crate::models::servarr_models::{IndexerField, Quality, QualityWrapper}, + crate::models::servarr_models::{DownloadStatus, IndexerField, Quality, QualityWrapper}, crate::models::stateful_table::SortOption, crate::network::servarr_test_utils::{ diskspace, indexer_settings, indexer_test_result, queued_event, diff --git a/src/models/servarr_models.rs b/src/models/servarr_models.rs index 1d87f8c2..ee6d562a 100644 --- a/src/models/servarr_models.rs +++ b/src/models/servarr_models.rs @@ -2,8 +2,10 @@ use std::fmt::{Display, Formatter, Result}; use chrono::{DateTime, Utc}; use clap::ValueEnum; +use enum_display_style_derive::EnumDisplayStyle; use serde::{Deserialize, Serialize}; use serde_json::{Number, Value}; +use strum::{Display, EnumIter}; use super::HorizontallyScrollableText; @@ -90,6 +92,36 @@ pub struct DiskSpace { pub total_space: i64, } +#[derive( + Serialize, + Deserialize, + Default, + PartialEq, + Eq, + Clone, + Copy, + Debug, + EnumIter, + Display, + EnumDisplayStyle, +)] +#[serde(rename_all = "camelCase")] +#[strum(serialize_all = "camelCase")] +pub enum DownloadStatus { + #[default] + Unknown, + Queued, + Paused, + Downloading, + Completed, + Failed, + Warning, + Delay, + #[display_style(name = "Download Client Unavailable")] + DownloadClientUnavailable, + Fallback, +} + #[derive(Default, Serialize, Deserialize, Clone, Debug, Eq, PartialEq)] #[serde(rename_all = "camelCase")] pub struct IndexerSettings { diff --git a/src/models/servarr_models_tests.rs b/src/models/servarr_models_tests.rs index 98fd176d..2678aa49 100644 --- a/src/models/servarr_models_tests.rs +++ b/src/models/servarr_models_tests.rs @@ -5,8 +5,8 @@ mod tests { use serde_json::{Value, json}; use crate::models::servarr_models::{ - AuthenticationMethod, AuthenticationRequired, CertificateValidation, Indexer, QualityProfile, - SecurityConfig, Update, UpdateChanges, + AuthenticationMethod, AuthenticationRequired, CertificateValidation, DownloadStatus, Indexer, + QualityProfile, SecurityConfig, Update, UpdateChanges, }; #[test] @@ -56,6 +56,40 @@ mod tests { assert_str_eq!(CertificateValidation::Disabled.to_string(), "disabled"); } + #[test] + fn test_download_status_display() { + assert_str_eq!(DownloadStatus::Unknown.to_string(), "unknown"); + assert_str_eq!(DownloadStatus::Queued.to_string(), "queued"); + assert_str_eq!(DownloadStatus::Paused.to_string(), "paused"); + assert_str_eq!(DownloadStatus::Downloading.to_string(), "downloading"); + assert_str_eq!(DownloadStatus::Completed.to_string(), "completed"); + assert_str_eq!(DownloadStatus::Failed.to_string(), "failed"); + assert_str_eq!(DownloadStatus::Warning.to_string(), "warning"); + assert_str_eq!(DownloadStatus::Delay.to_string(), "delay"); + assert_str_eq!( + DownloadStatus::DownloadClientUnavailable.to_string(), + "downloadClientUnavailable" + ); + assert_str_eq!(DownloadStatus::Fallback.to_string(), "fallback"); + } + + #[test] + fn test_download_status_to_display_str() { + assert_str_eq!(DownloadStatus::Unknown.to_display_str(), "Unknown"); + assert_str_eq!(DownloadStatus::Queued.to_display_str(), "Queued"); + assert_str_eq!(DownloadStatus::Paused.to_display_str(), "Paused"); + assert_str_eq!(DownloadStatus::Downloading.to_display_str(), "Downloading"); + assert_str_eq!(DownloadStatus::Completed.to_display_str(), "Completed"); + assert_str_eq!(DownloadStatus::Failed.to_display_str(), "Failed"); + assert_str_eq!(DownloadStatus::Warning.to_display_str(), "Warning"); + assert_str_eq!(DownloadStatus::Delay.to_display_str(), "Delay"); + assert_str_eq!( + DownloadStatus::DownloadClientUnavailable.to_display_str(), + "Download Client Unavailable" + ); + assert_str_eq!(DownloadStatus::Fallback.to_display_str(), "Fallback"); + } + #[test] fn test_quality_profile_from_tuple_ref() { let id = 2; diff --git a/src/models/sonarr_models.rs b/src/models/sonarr_models.rs index aca2c844..89d37451 100644 --- a/src/models/sonarr_models.rs +++ b/src/models/sonarr_models.rs @@ -16,8 +16,8 @@ use strum_macros::Display; use super::{ HorizontallyScrollableText, Serdeable, servarr_models::{ - DiskSpace, HostConfig, Indexer, Language, LogResponse, QualityProfile, QualityWrapper, - QueueEvent, RootFolder, SecurityConfig, SystemStatus, Tag, Update, + DiskSpace, DownloadStatus, HostConfig, Indexer, Language, LogResponse, QualityProfile, + QualityWrapper, QueueEvent, RootFolder, SecurityConfig, SystemStatus, Tag, Update, }, }; @@ -129,36 +129,6 @@ pub struct DownloadRecord { impl Eq for DownloadRecord {} -#[derive( - Serialize, - Deserialize, - Default, - PartialEq, - Eq, - Clone, - Copy, - Debug, - EnumIter, - Display, - EnumDisplayStyle, -)] -#[serde(rename_all = "camelCase")] -#[strum(serialize_all = "camelCase")] -pub enum DownloadStatus { - #[default] - Unknown, - Queued, - Paused, - Downloading, - Completed, - Failed, - Warning, - Delay, - #[display_style(name = "Download Client Unavailable")] - DownloadClientUnavailable, - Fallback, -} - #[derive(Default, Clone, Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(rename_all = "camelCase")] pub struct DownloadsResponse { diff --git a/src/models/sonarr_models_tests.rs b/src/models/sonarr_models_tests.rs index 286cb714..7517a15d 100644 --- a/src/models/sonarr_models_tests.rs +++ b/src/models/sonarr_models_tests.rs @@ -7,13 +7,13 @@ mod tests { use crate::models::{ Serdeable, servarr_models::{ - DiskSpace, HostConfig, Indexer, IndexerSettings, IndexerTestResult, Language, Log, - LogResponse, QualityProfile, QueueEvent, RootFolder, SecurityConfig, SystemStatus, Tag, + DiskSpace, DownloadStatus, HostConfig, Indexer, IndexerSettings, IndexerTestResult, Language, + Log, LogResponse, QualityProfile, QueueEvent, RootFolder, SecurityConfig, SystemStatus, Tag, Update, }, sonarr_models::{ - AddSeriesSearchResult, BlocklistItem, BlocklistResponse, DownloadRecord, DownloadStatus, - DownloadsResponse, Episode, EpisodeFile, Series, SeriesMonitor, SeriesStatus, SeriesType, + AddSeriesSearchResult, BlocklistItem, BlocklistResponse, DownloadRecord, DownloadsResponse, + Episode, EpisodeFile, Series, SeriesMonitor, SeriesStatus, SeriesType, SonarrHistoryEventType, SonarrHistoryItem, SonarrRelease, SonarrSerdeable, SonarrTask, SonarrTaskName, }, @@ -123,40 +123,6 @@ mod tests { assert_str_eq!(SeriesType::Anime.to_display_str(), "Anime"); } - #[test] - fn test_download_status_display() { - assert_str_eq!(DownloadStatus::Unknown.to_string(), "unknown"); - assert_str_eq!(DownloadStatus::Queued.to_string(), "queued"); - assert_str_eq!(DownloadStatus::Paused.to_string(), "paused"); - assert_str_eq!(DownloadStatus::Downloading.to_string(), "downloading"); - assert_str_eq!(DownloadStatus::Completed.to_string(), "completed"); - assert_str_eq!(DownloadStatus::Failed.to_string(), "failed"); - assert_str_eq!(DownloadStatus::Warning.to_string(), "warning"); - assert_str_eq!(DownloadStatus::Delay.to_string(), "delay"); - assert_str_eq!( - DownloadStatus::DownloadClientUnavailable.to_string(), - "downloadClientUnavailable" - ); - assert_str_eq!(DownloadStatus::Fallback.to_string(), "fallback"); - } - - #[test] - fn test_download_status_to_display_str() { - assert_str_eq!(DownloadStatus::Unknown.to_display_str(), "Unknown"); - assert_str_eq!(DownloadStatus::Queued.to_display_str(), "Queued"); - assert_str_eq!(DownloadStatus::Paused.to_display_str(), "Paused"); - assert_str_eq!(DownloadStatus::Downloading.to_display_str(), "Downloading"); - assert_str_eq!(DownloadStatus::Completed.to_display_str(), "Completed"); - assert_str_eq!(DownloadStatus::Failed.to_display_str(), "Failed"); - assert_str_eq!(DownloadStatus::Warning.to_display_str(), "Warning"); - assert_str_eq!(DownloadStatus::Delay.to_display_str(), "Delay"); - assert_str_eq!( - DownloadStatus::DownloadClientUnavailable.to_display_str(), - "Download Client Unavailable" - ); - assert_str_eq!(DownloadStatus::Fallback.to_display_str(), "Fallback"); - } - #[test] fn test_sonarr_history_event_type_display() { assert_str_eq!(SonarrHistoryEventType::Unknown.to_string(), "unknown",); diff --git a/src/network/lidarr_network/lidarr_network_test_utils.rs b/src/network/lidarr_network/lidarr_network_test_utils.rs index e16faee8..d35ad579 100644 --- a/src/network/lidarr_network/lidarr_network_test_utils.rs +++ b/src/network/lidarr_network/lidarr_network_test_utils.rs @@ -3,15 +3,15 @@ pub mod test_utils { use crate::models::lidarr_models::{ AddArtistSearchResult, Album, AlbumStatistics, Artist, ArtistStatistics, ArtistStatus, - AudioTags, BlocklistItem, BlocklistResponse, DownloadRecord, DownloadStatus, DownloadsResponse, + AudioTags, BlocklistItem, BlocklistResponse, DownloadRecord, DownloadsResponse, EditArtistParams, LidarrHistoryData, LidarrHistoryEventType, LidarrHistoryItem, LidarrHistoryWrapper, LidarrRelease, LidarrTask, LidarrTaskName, MediaInfo, Member, NewItemMonitorType, Ratings, Track, TrackFile, }; use crate::models::servarr_models::IndexerSettings; use crate::models::servarr_models::{ - Indexer, IndexerField, MetadataProfile, Quality, QualityProfile, QualityWrapper, RootFolder, - SystemStatus, Tag, + DownloadStatus, Indexer, IndexerField, MetadataProfile, Quality, QualityProfile, + QualityWrapper, RootFolder, SystemStatus, Tag, }; use crate::models::{HorizontallyScrollableText, ScrollableText}; use bimap::BiMap; diff --git a/src/network/radarr_network/library/mod.rs b/src/network/radarr_network/library/mod.rs index cbc1027d..7bee027e 100644 --- a/src/network/radarr_network/library/mod.rs +++ b/src/network/radarr_network/library/mod.rs @@ -1,11 +1,12 @@ use crate::models::radarr_models::{ AddMovieBody, AddMovieSearchResult, Credit, CreditType, DeleteMovieParams, DownloadRecord, - DownloadStatus, EditMovieParams, Movie, MovieCommandBody, MovieHistoryItem, RadarrRelease, + EditMovieParams, Movie, MovieCommandBody, MovieHistoryItem, RadarrRelease, RadarrReleaseDownloadBody, }; use crate::models::servarr_data::Notification; use crate::models::servarr_data::radarr::modals::MovieDetailsModal; use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock; +use crate::models::servarr_models::DownloadStatus; use crate::models::stateful_table::StatefulTable; use crate::models::{Route, ScrollableText}; use crate::network::radarr_network::RadarrEvent; diff --git a/src/network/radarr_network/library/radarr_library_network_tests.rs b/src/network/radarr_network/library/radarr_library_network_tests.rs index 78ba924e..97ca4491 100644 --- a/src/network/radarr_network/library/radarr_library_network_tests.rs +++ b/src/network/radarr_network/library/radarr_library_network_tests.rs @@ -1,13 +1,13 @@ #[cfg(test)] mod tests { use crate::models::radarr_models::{ - AddMovieBody, AddMovieOptions, Credit, DeleteMovieParams, DownloadRecord, DownloadStatus, - EditMovieParams, MinimumAvailability, Movie, MovieHistoryItem, MovieMonitor, - RadarrReleaseDownloadBody, + AddMovieBody, AddMovieOptions, Credit, DeleteMovieParams, DownloadRecord, EditMovieParams, + MinimumAvailability, Movie, MovieHistoryItem, MovieMonitor, RadarrReleaseDownloadBody, }; use crate::models::servarr_data::Notification; use crate::models::servarr_data::radarr::modals::MovieDetailsModal; use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock; + use crate::models::servarr_models::DownloadStatus; use crate::models::stateful_table::SortOption; use crate::network::NetworkResource; use crate::network::network_tests::test_utils::{MockServarrApi, test_network}; diff --git a/src/network/radarr_network/radarr_network_test_utils.rs b/src/network/radarr_network/radarr_network_test_utils.rs index c64feb06..866bdbe2 100644 --- a/src/network/radarr_network/radarr_network_test_utils.rs +++ b/src/network/radarr_network/radarr_network_test_utils.rs @@ -2,13 +2,13 @@ pub mod test_utils { use crate::models::radarr_models::{ AddMovieSearchResult, BlocklistItem, BlocklistItemMovie, Collection, CollectionMovie, Credit, - CreditType, DownloadRecord, DownloadStatus, DownloadsResponse, IndexerSettings, MediaInfo, - MinimumAvailability, Movie, MovieCollection, MovieFile, MovieHistoryItem, MovieStatus, - RadarrHistoryData, RadarrHistoryEventType, RadarrHistoryItem, RadarrRelease, RadarrTask, - RadarrTaskName, Rating, RatingsList, + CreditType, DownloadRecord, DownloadsResponse, IndexerSettings, MediaInfo, MinimumAvailability, + Movie, MovieCollection, MovieFile, MovieHistoryItem, MovieStatus, RadarrHistoryData, + RadarrHistoryEventType, RadarrHistoryItem, RadarrRelease, RadarrTask, RadarrTaskName, Rating, + RatingsList, }; use crate::models::servarr_models::{ - Indexer, IndexerField, Language, Quality, QualityWrapper, RootFolder, + DownloadStatus, Indexer, IndexerField, Language, Quality, QualityWrapper, RootFolder, }; use crate::models::{HorizontallyScrollableText, ScrollableText}; use bimap::BiMap; diff --git a/src/network/readarr_network/readarr_network_test_utils.rs b/src/network/readarr_network/readarr_network_test_utils.rs index 60086768..fa7bbd34 100644 --- a/src/network/readarr_network/readarr_network_test_utils.rs +++ b/src/network/readarr_network/readarr_network_test_utils.rs @@ -4,13 +4,12 @@ pub mod test_utils { use crate::models::HorizontallyScrollableText; use crate::models::readarr_models::{ AddAuthorBody, AddAuthorOptions, AddAuthorSearchResult, Author, AuthorStatus, BlocklistItem, - Book, BookFile, DownloadRecord, DownloadStatus, DownloadsResponse, Edition, MonitorType, - NewItemMonitorType, ReadarrHistoryData, ReadarrHistoryEventType, ReadarrHistoryItem, - ReadarrRelease, + Book, BookFile, DownloadRecord, DownloadsResponse, Edition, MonitorType, NewItemMonitorType, + ReadarrHistoryData, ReadarrHistoryEventType, ReadarrHistoryItem, ReadarrRelease, }; use crate::models::servarr_data::modals::IndexerTestResultModalItem; use crate::models::servarr_models::{ - Indexer, IndexerField, IndexerSettings, Quality, QualityWrapper, RootFolder, + DownloadStatus, Indexer, IndexerField, IndexerSettings, Quality, QualityWrapper, RootFolder, }; use chrono::DateTime; use serde_json::{Number, json}; diff --git a/src/network/sonarr_network/library/episodes/mod.rs b/src/network/sonarr_network/library/episodes/mod.rs index 0eec86db..897e5ba9 100644 --- a/src/network/sonarr_network/library/episodes/mod.rs +++ b/src/network/sonarr_network/library/episodes/mod.rs @@ -1,8 +1,8 @@ use crate::models::servarr_data::sonarr::modals::SeasonDetailsModal; use crate::models::servarr_data::sonarr::sonarr_data::ActiveSonarrBlock; -use crate::models::servarr_models::Language; +use crate::models::servarr_models::{DownloadStatus, Language}; use crate::models::sonarr_models::{ - DownloadRecord, DownloadStatus, Episode, EpisodeFile, MonitorEpisodeBody, SonarrCommandBody, + DownloadRecord, Episode, EpisodeFile, MonitorEpisodeBody, SonarrCommandBody, SonarrHistoryWrapper, SonarrRelease, }; use crate::models::{Route, ScrollableText}; diff --git a/src/network/sonarr_network/library/episodes/sonarr_episodes_network_tests.rs b/src/network/sonarr_network/library/episodes/sonarr_episodes_network_tests.rs index d20686ab..ebaf8e6d 100644 --- a/src/network/sonarr_network/library/episodes/sonarr_episodes_network_tests.rs +++ b/src/network/sonarr_network/library/episodes/sonarr_episodes_network_tests.rs @@ -2,8 +2,9 @@ mod tests { use crate::models::servarr_data::sonarr::modals::{EpisodeDetailsModal, SeasonDetailsModal}; use crate::models::servarr_data::sonarr::sonarr_data::ActiveSonarrBlock; + use crate::models::servarr_models::DownloadStatus; use crate::models::sonarr_models::{ - DownloadRecord, DownloadStatus, Episode, MonitorEpisodeBody, Season, Series, SonarrHistoryItem, + DownloadRecord, Episode, MonitorEpisodeBody, Season, Series, SonarrHistoryItem, SonarrHistoryWrapper, SonarrRelease, SonarrSerdeable, }; use crate::models::stateful_table::SortOption; diff --git a/src/network/sonarr_network/sonarr_network_test_utils.rs b/src/network/sonarr_network/sonarr_network_test_utils.rs index 03af7a5c..ff651cc5 100644 --- a/src/network/sonarr_network/sonarr_network_test_utils.rs +++ b/src/network/sonarr_network/sonarr_network_test_utils.rs @@ -1,13 +1,13 @@ #[cfg(test)] pub mod test_utils { use crate::models::servarr_models::{ - Indexer, IndexerField, Language, Quality, QualityWrapper, RootFolder, + DownloadStatus, Indexer, IndexerField, Language, Quality, QualityWrapper, RootFolder, }; use crate::models::sonarr_models::{ AddSeriesSearchResult, AddSeriesSearchResultStatistics, BlocklistItem, DownloadRecord, - DownloadStatus, DownloadsResponse, Episode, EpisodeFile, MediaInfo, Rating, Season, - SeasonStatistics, Series, SeriesStatistics, SeriesStatus, SeriesType, SonarrHistoryData, - SonarrHistoryEventType, SonarrHistoryItem, SonarrRelease, SonarrTask, SonarrTaskName, + DownloadsResponse, Episode, EpisodeFile, MediaInfo, Rating, Season, SeasonStatistics, Series, + SeriesStatistics, SeriesStatus, SeriesType, SonarrHistoryData, SonarrHistoryEventType, + SonarrHistoryItem, SonarrRelease, SonarrTask, SonarrTaskName, }; use crate::models::{HorizontallyScrollableText, ScrollableText}; use bimap::BiMap; diff --git a/src/ui/lidarr_ui/library/album_details_ui.rs b/src/ui/lidarr_ui/library/album_details_ui.rs index e5dd920c..74c71fb5 100644 --- a/src/ui/lidarr_ui/library/album_details_ui.rs +++ b/src/ui/lidarr_ui/library/album_details_ui.rs @@ -1,9 +1,8 @@ use crate::app::App; use crate::models::Route; -use crate::models::lidarr_models::{ - DownloadRecord, DownloadStatus, LidarrHistoryItem, LidarrRelease, Track, -}; +use crate::models::lidarr_models::{DownloadRecord, LidarrHistoryItem, LidarrRelease, Track}; use crate::models::servarr_data::lidarr::lidarr_data::{ALBUM_DETAILS_BLOCKS, ActiveLidarrBlock}; +use crate::models::servarr_models::DownloadStatus; use crate::ui::lidarr_ui::library::track_details_ui::TrackDetailsUi; use crate::ui::lidarr_ui::lidarr_ui_utils::create_history_event_details; use crate::ui::styles::{ManagarrStyle, secondary_style}; diff --git a/src/ui/lidarr_ui/library/album_details_ui_tests.rs b/src/ui/lidarr_ui/library/album_details_ui_tests.rs index a277027b..a74df72c 100644 --- a/src/ui/lidarr_ui/library/album_details_ui_tests.rs +++ b/src/ui/lidarr_ui/library/album_details_ui_tests.rs @@ -6,10 +6,11 @@ mod tests { use strum::IntoEnumIterator; use crate::app::App; - use crate::models::lidarr_models::{DownloadRecord, DownloadStatus, Track}; + use crate::models::lidarr_models::{DownloadRecord, Track}; use crate::models::servarr_data::lidarr::lidarr_data::{ ALBUM_DETAILS_BLOCKS, ActiveLidarrBlock, TRACK_DETAILS_BLOCKS, }; + use crate::models::servarr_models::DownloadStatus; use crate::models::stateful_table::StatefulTable; use crate::network::lidarr_network::lidarr_network_test_utils::test_utils::download_record; use crate::ui::DrawUi; diff --git a/src/ui/radarr_ui/mod.rs b/src/ui/radarr_ui/mod.rs index a50fc898..667a207a 100644 --- a/src/ui/radarr_ui/mod.rs +++ b/src/ui/radarr_ui/mod.rs @@ -1,9 +1,9 @@ use crate::app::App; use crate::logos::RADARR_LOGO; use crate::models::Route; -use crate::models::radarr_models::{DownloadRecord, DownloadStatus, Movie, MovieStatus}; +use crate::models::radarr_models::{DownloadRecord, Movie, MovieStatus}; use crate::models::servarr_data::radarr::radarr_data::RadarrData; -use crate::models::servarr_models::{DiskSpace, RootFolder}; +use crate::models::servarr_models::{DiskSpace, DownloadStatus, RootFolder}; use crate::ui::DrawUi; use crate::ui::draw_tabs; use crate::ui::radarr_ui::blocklist::BlocklistUi; diff --git a/src/ui/radarr_ui/radarr_ui_tests.rs b/src/ui/radarr_ui/radarr_ui_tests.rs index 17b2dc75..b90e53f5 100644 --- a/src/ui/radarr_ui/radarr_ui_tests.rs +++ b/src/ui/radarr_ui/radarr_ui_tests.rs @@ -1,6 +1,7 @@ #[cfg(test)] mod tests { - use crate::models::radarr_models::{DownloadRecord, DownloadStatus, Movie, MovieStatus}; + use crate::models::radarr_models::{DownloadRecord, Movie, MovieStatus}; + use crate::models::servarr_models::DownloadStatus; use pretty_assertions::assert_eq; use ratatui::widgets::{Cell, Row}; use rstest::rstest; diff --git a/src/ui/readarr_ui/downloads/downloads_ui_tests.rs b/src/ui/readarr_ui/downloads/downloads_ui_tests.rs index 565b470a..17bddeb3 100644 --- a/src/ui/readarr_ui/downloads/downloads_ui_tests.rs +++ b/src/ui/readarr_ui/downloads/downloads_ui_tests.rs @@ -23,7 +23,8 @@ mod tests { use rstest::rstest; use serde_json::Number; - use crate::models::readarr_models::{DownloadRecord, DownloadStatus}; + use crate::models::readarr_models::DownloadRecord; + use crate::models::servarr_models::DownloadStatus; use crate::ui::ui_test_utils::test_utils::TerminalSize; use super::*; diff --git a/src/ui/sonarr_ui/library/episode_details_ui.rs b/src/ui/sonarr_ui/library/episode_details_ui.rs index ae939bc4..5e0ee30c 100644 --- a/src/ui/sonarr_ui/library/episode_details_ui.rs +++ b/src/ui/sonarr_ui/library/episode_details_ui.rs @@ -1,10 +1,8 @@ use crate::app::App; use crate::models::Route; use crate::models::servarr_data::sonarr::sonarr_data::{ActiveSonarrBlock, EPISODE_DETAILS_BLOCKS}; -use crate::models::servarr_models::Language; -use crate::models::sonarr_models::{ - DownloadRecord, DownloadStatus, Episode, SonarrHistoryItem, SonarrRelease, -}; +use crate::models::servarr_models::{DownloadStatus, Language}; +use crate::models::sonarr_models::{DownloadRecord, Episode, SonarrHistoryItem, SonarrRelease}; use crate::ui::sonarr_ui::sonarr_ui_utils::create_history_event_details; use crate::ui::styles::ManagarrStyle; use crate::ui::styles::{ diff --git a/src/ui/sonarr_ui/library/episode_details_ui_tests.rs b/src/ui/sonarr_ui/library/episode_details_ui_tests.rs index 323a1d45..f0c476b6 100644 --- a/src/ui/sonarr_ui/library/episode_details_ui_tests.rs +++ b/src/ui/sonarr_ui/library/episode_details_ui_tests.rs @@ -8,7 +8,8 @@ mod tests { use crate::models::servarr_data::sonarr::sonarr_data::{ ActiveSonarrBlock, EPISODE_DETAILS_BLOCKS, }; - use crate::models::sonarr_models::{DownloadRecord, DownloadStatus, Episode}; + use crate::models::servarr_models::DownloadStatus; + use crate::models::sonarr_models::{DownloadRecord, Episode}; use crate::ui::DrawUi; use crate::ui::sonarr_ui::library::episode_details_ui::{EpisodeDetailsUi, style_from_status}; use crate::ui::styles::{ diff --git a/src/ui/sonarr_ui/library/season_details_ui.rs b/src/ui/sonarr_ui/library/season_details_ui.rs index 1f968562..a746e7d7 100644 --- a/src/ui/sonarr_ui/library/season_details_ui.rs +++ b/src/ui/sonarr_ui/library/season_details_ui.rs @@ -1,9 +1,8 @@ use crate::app::App; use crate::models::Route; use crate::models::servarr_data::sonarr::sonarr_data::{ActiveSonarrBlock, SEASON_DETAILS_BLOCKS}; -use crate::models::sonarr_models::{ - DownloadRecord, DownloadStatus, Episode, SonarrHistoryItem, SonarrRelease, -}; +use crate::models::servarr_models::DownloadStatus; +use crate::models::sonarr_models::{DownloadRecord, Episode, SonarrHistoryItem, SonarrRelease}; use crate::ui::sonarr_ui::library::episode_details_ui::EpisodeDetailsUi; use crate::ui::sonarr_ui::sonarr_ui_utils::create_history_event_details; use crate::ui::styles::ManagarrStyle; diff --git a/src/ui/sonarr_ui/library/season_details_ui_tests.rs b/src/ui/sonarr_ui/library/season_details_ui_tests.rs index f5754713..1d8d2923 100644 --- a/src/ui/sonarr_ui/library/season_details_ui_tests.rs +++ b/src/ui/sonarr_ui/library/season_details_ui_tests.rs @@ -10,7 +10,8 @@ mod tests { use crate::models::servarr_data::sonarr::sonarr_data::{ ActiveSonarrBlock, EPISODE_DETAILS_BLOCKS, SEASON_DETAILS_BLOCKS, }; - use crate::models::sonarr_models::{DownloadRecord, DownloadStatus, Episode}; + use crate::models::servarr_models::DownloadStatus; + use crate::models::sonarr_models::{DownloadRecord, Episode}; use crate::models::stateful_table::StatefulTable; use crate::network::sonarr_network::sonarr_network_test_utils::test_utils::download_record; use crate::ui::DrawUi;