diff --git a/src/models/radarr_models.rs b/src/models/radarr_models.rs index d7ef4ce..e9b1d0e 100644 --- a/src/models/radarr_models.rs +++ b/src/models/radarr_models.rs @@ -1,5 +1,6 @@ use std::fmt::{Display, Formatter}; +use crate::models::servarr_models::IndexerTestResult; use crate::{models::HorizontallyScrollableText, serde_enum_from}; use chrono::{DateTime, Utc}; use clap::ValueEnum; @@ -216,23 +217,6 @@ pub struct IndexerSettings { pub whitelisted_hardcoded_subs: HorizontallyScrollableText, } -#[derive(Default, Serialize, Deserialize, Debug, Clone, PartialEq, Eq)] -#[serde(rename_all = "camelCase")] -pub struct IndexerTestResult { - #[serde(deserialize_with = "super::from_i64")] - pub id: i64, - pub is_valid: bool, - pub validation_failures: Vec, -} - -#[derive(Default, Serialize, Deserialize, Debug, Clone, PartialEq, Eq)] -#[serde(rename_all = "camelCase")] -pub struct IndexerValidationFailure { - pub property_name: String, - pub error_message: String, - pub severity: String, -} - #[derive(Serialize, Deserialize, Derivative, Debug, Clone, PartialEq, Eq)] #[derivative(Default)] #[serde(rename_all = "camelCase")] diff --git a/src/models/servarr_models.rs b/src/models/servarr_models.rs index 1be94d8..8c039bb 100644 --- a/src/models/servarr_models.rs +++ b/src/models/servarr_models.rs @@ -153,6 +153,23 @@ pub struct Indexer { pub tags: Vec, } +#[derive(Default, Serialize, Deserialize, Debug, Clone, PartialEq, Eq)] +#[serde(rename_all = "camelCase")] +pub struct IndexerTestResult { + #[serde(deserialize_with = "super::from_i64")] + pub id: i64, + pub is_valid: bool, + pub validation_failures: Vec, +} + +#[derive(Default, Serialize, Deserialize, Debug, Clone, PartialEq, Eq)] +#[serde(rename_all = "camelCase")] +pub struct IndexerValidationFailure { + pub property_name: String, + pub error_message: String, + pub severity: String, +} + #[derive(Default, Deserialize, Serialize, Debug, Clone, Eq, PartialEq)] pub struct IndexerField { pub name: Option, diff --git a/src/models/sonarr_models.rs b/src/models/sonarr_models.rs index 2aa7423..1a9886e 100644 --- a/src/models/sonarr_models.rs +++ b/src/models/sonarr_models.rs @@ -1,6 +1,6 @@ use std::fmt::{Display, Formatter}; -use crate::serde_enum_from; +use crate::{models::servarr_models::IndexerTestResult, serde_enum_from}; use chrono::{DateTime, Utc}; use clap::ValueEnum; use derivative::Derivative; @@ -11,7 +11,6 @@ use strum::EnumIter; use strum_macros::Display; use super::{ - radarr_models::IndexerTestResult, servarr_models::{ DiskSpace, HostConfig, Indexer, Language, LogResponse, QualityProfile, QualityWrapper, QueueEvent, RootFolder, SecurityConfig, Tag, Update, diff --git a/src/models/sonarr_models_tests.rs b/src/models/sonarr_models_tests.rs index be82201..632bacb 100644 --- a/src/models/sonarr_models_tests.rs +++ b/src/models/sonarr_models_tests.rs @@ -4,10 +4,9 @@ mod tests { use serde_json::json; use crate::models::{ - radarr_models::IndexerTestResult, servarr_models::{ - DiskSpace, HostConfig, Indexer, Language, Log, LogResponse, QualityProfile, QueueEvent, - RootFolder, SecurityConfig, Tag, Update, + DiskSpace, HostConfig, Indexer, IndexerTestResult, Language, Log, LogResponse, + QualityProfile, QueueEvent, RootFolder, SecurityConfig, Tag, Update, }, sonarr_models::{ AddSeriesSearchResult, BlocklistItem, BlocklistResponse, DownloadRecord, DownloadStatus, diff --git a/src/network/radarr_network.rs b/src/network/radarr_network.rs index e4c40f9..4235667 100644 --- a/src/network/radarr_network.rs +++ b/src/network/radarr_network.rs @@ -9,15 +9,16 @@ use urlencoding::encode; use crate::models::radarr_models::{ AddMovieBody, AddMovieSearchResult, BlocklistResponse, Collection, Credit, CreditType, DeleteMovieParams, DownloadRecord, DownloadsResponse, EditCollectionParams, EditMovieParams, - IndexerSettings, IndexerTestResult, Movie, MovieCommandBody, MovieHistoryItem, RadarrRelease, + IndexerSettings, Movie, MovieCommandBody, MovieHistoryItem, RadarrRelease, RadarrReleaseDownloadBody, RadarrSerdeable, RadarrTask, RadarrTaskName, SystemStatus, }; use crate::models::servarr_data::modals::IndexerTestResultModalItem; use crate::models::servarr_data::radarr::modals::MovieDetailsModal; use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock; use crate::models::servarr_models::{ - AddRootFolderBody, CommandBody, DiskSpace, EditIndexerParams, HostConfig, Indexer, LogResponse, - QualityProfile, QueueEvent, RootFolder, SecurityConfig, Tag, Update, + AddRootFolderBody, CommandBody, DiskSpace, EditIndexerParams, HostConfig, Indexer, + IndexerTestResult, LogResponse, QualityProfile, QueueEvent, RootFolder, SecurityConfig, Tag, + Update, }; use crate::models::stateful_table::StatefulTable; use crate::models::{HorizontallyScrollableText, Route, Scrollable, ScrollableText}; diff --git a/src/network/sonarr_network.rs b/src/network/sonarr_network.rs index afd31d3..8088c30 100644 --- a/src/network/sonarr_network.rs +++ b/src/network/sonarr_network.rs @@ -5,10 +5,10 @@ use serde_json::{json, Number, Value}; use urlencoding::encode; use super::{Network, NetworkEvent, NetworkResource}; +use crate::models::servarr_models::IndexerTestResult; use crate::models::sonarr_models::{DownloadStatus, MonitorEpisodeBody}; use crate::{ models::{ - radarr_models::IndexerTestResult, servarr_data::{ modals::IndexerTestResultModalItem, sonarr::{ diff --git a/src/network/sonarr_network_tests.rs b/src/network/sonarr_network_tests.rs index 07b1914..2318b8e 100644 --- a/src/network/sonarr_network_tests.rs +++ b/src/network/sonarr_network_tests.rs @@ -21,16 +21,15 @@ mod test { }; use crate::app::App; - use crate::models::radarr_models::IndexerTestResult; use crate::models::servarr_data::modals::IndexerTestResultModalItem; use crate::models::servarr_data::sonarr::modals::{ AddSeriesModal, EpisodeDetailsModal, SeasonDetailsModal, }; use crate::models::servarr_data::sonarr::sonarr_data::ActiveSonarrBlock; use crate::models::servarr_models::{ - AddRootFolderBody, DiskSpace, EditIndexerParams, HostConfig, Indexer, IndexerField, Language, - LogResponse, Quality, QualityProfile, QualityWrapper, QueueEvent, RootFolder, SecurityConfig, - Tag, Update, + AddRootFolderBody, DiskSpace, EditIndexerParams, HostConfig, Indexer, IndexerField, + IndexerTestResult, Language, LogResponse, Quality, QualityProfile, QualityWrapper, QueueEvent, + RootFolder, SecurityConfig, Tag, Update, }; use crate::models::sonarr_models::{ BlocklistItem, DeleteSeriesParams, DownloadRecord, DownloadsResponse, Episode, EpisodeFile,