refactor: Let serde serialize Add Series and Add Movie enums instead of calling to_string up front
This commit is contained in:
@@ -6,7 +6,8 @@ mod tests {
|
|||||||
use crate::app::App;
|
use crate::app::App;
|
||||||
use crate::app::radarr::ActiveRadarrBlock;
|
use crate::app::radarr::ActiveRadarrBlock;
|
||||||
use crate::models::radarr_models::{
|
use crate::models::radarr_models::{
|
||||||
AddMovieBody, AddMovieOptions, Collection, CollectionMovie, Credit, Movie, RadarrRelease,
|
AddMovieBody, AddMovieOptions, Collection, CollectionMovie, Credit, MinimumAvailability, Movie,
|
||||||
|
MovieMonitor, RadarrRelease,
|
||||||
};
|
};
|
||||||
use crate::models::servarr_data::radarr::modals::MovieDetailsModal;
|
use crate::models::servarr_data::radarr::modals::MovieDetailsModal;
|
||||||
use crate::models::servarr_models::Indexer;
|
use crate::models::servarr_models::Indexer;
|
||||||
@@ -88,13 +89,13 @@ mod tests {
|
|||||||
tmdb_id: 1234,
|
tmdb_id: 1234,
|
||||||
title: "Test".to_owned(),
|
title: "Test".to_owned(),
|
||||||
root_folder_path: "/nfs2".to_owned(),
|
root_folder_path: "/nfs2".to_owned(),
|
||||||
minimum_availability: "announced".to_owned(),
|
minimum_availability: MinimumAvailability::Announced,
|
||||||
monitored: true,
|
monitored: true,
|
||||||
quality_profile_id: 2222,
|
quality_profile_id: 2222,
|
||||||
tags: vec![1, 2],
|
tags: vec![1, 2],
|
||||||
tag_input_string: None,
|
tag_input_string: None,
|
||||||
add_options: AddMovieOptions {
|
add_options: AddMovieOptions {
|
||||||
monitor: "movieOnly".to_owned(),
|
monitor: MovieMonitor::MovieOnly,
|
||||||
search_for_movie: true,
|
search_for_movie: true,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -122,12 +122,12 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, RadarrAddCommand> for RadarrAddCommandHan
|
|||||||
title: String::new(),
|
title: String::new(),
|
||||||
root_folder_path,
|
root_folder_path,
|
||||||
quality_profile_id,
|
quality_profile_id,
|
||||||
minimum_availability: minimum_availability.to_string(),
|
minimum_availability,
|
||||||
monitored: !disable_monitoring,
|
monitored: !disable_monitoring,
|
||||||
tags,
|
tags,
|
||||||
tag_input_string: None,
|
tag_input_string: None,
|
||||||
add_options: AddMovieOptions {
|
add_options: AddMovieOptions {
|
||||||
monitor: monitor.to_string(),
|
monitor,
|
||||||
search_for_movie: !no_search_for_movie,
|
search_for_movie: !no_search_for_movie,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -384,12 +384,12 @@ mod tests {
|
|||||||
title: String::new(),
|
title: String::new(),
|
||||||
root_folder_path: "/test".to_owned(),
|
root_folder_path: "/test".to_owned(),
|
||||||
quality_profile_id: 1,
|
quality_profile_id: 1,
|
||||||
minimum_availability: "released".to_owned(),
|
minimum_availability: MinimumAvailability::Released,
|
||||||
monitored: false,
|
monitored: false,
|
||||||
tags: vec![1, 2],
|
tags: vec![1, 2],
|
||||||
tag_input_string: None,
|
tag_input_string: None,
|
||||||
add_options: AddMovieOptions {
|
add_options: AddMovieOptions {
|
||||||
monitor: "movieAndCollection".to_owned(),
|
monitor: MovieMonitor::MovieAndCollection,
|
||||||
search_for_movie: false,
|
search_for_movie: false,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -137,12 +137,12 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, SonarrAddCommand> for SonarrAddCommandHan
|
|||||||
root_folder_path,
|
root_folder_path,
|
||||||
quality_profile_id,
|
quality_profile_id,
|
||||||
language_profile_id,
|
language_profile_id,
|
||||||
series_type: series_type.to_string(),
|
series_type,
|
||||||
season_folder: !disable_season_folders,
|
season_folder: !disable_season_folders,
|
||||||
tags,
|
tags,
|
||||||
tag_input_string: None,
|
tag_input_string: None,
|
||||||
add_options: AddSeriesOptions {
|
add_options: AddSeriesOptions {
|
||||||
monitor: monitor.to_string(),
|
monitor,
|
||||||
search_for_cutoff_unmet_episodes: !no_search_for_series,
|
search_for_cutoff_unmet_episodes: !no_search_for_series,
|
||||||
search_for_missing_episodes: !no_search_for_series,
|
search_for_missing_episodes: !no_search_for_series,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -517,13 +517,13 @@ mod tests {
|
|||||||
root_folder_path: "/test".to_owned(),
|
root_folder_path: "/test".to_owned(),
|
||||||
quality_profile_id: 1,
|
quality_profile_id: 1,
|
||||||
language_profile_id: 1,
|
language_profile_id: 1,
|
||||||
series_type: "anime".to_owned(),
|
series_type: SeriesType::Anime,
|
||||||
monitored: false,
|
monitored: false,
|
||||||
tags: vec![1, 2],
|
tags: vec![1, 2],
|
||||||
tag_input_string: None,
|
tag_input_string: None,
|
||||||
season_folder: false,
|
season_folder: false,
|
||||||
add_options: AddSeriesOptions {
|
add_options: AddSeriesOptions {
|
||||||
monitor: "future".to_owned(),
|
monitor: SeriesMonitor::Future,
|
||||||
search_for_cutoff_unmet_episodes: false,
|
search_for_cutoff_unmet_episodes: false,
|
||||||
search_for_missing_episodes: false,
|
search_for_missing_episodes: false,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -83,8 +83,8 @@ impl AddMovieHandler<'_, '_> {
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let path = root_folder_list.current_selection().path.clone();
|
let path = root_folder_list.current_selection().path.clone();
|
||||||
let monitor = monitor_list.current_selection().to_string();
|
let monitor = *monitor_list.current_selection();
|
||||||
let minimum_availability = minimum_availability_list.current_selection().to_string();
|
let minimum_availability = *minimum_availability_list.current_selection();
|
||||||
|
|
||||||
AddMovieBody {
|
AddMovieBody {
|
||||||
tmdb_id,
|
tmdb_id,
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ pub(in crate::handlers::radarr_handlers) mod utils {
|
|||||||
use crate::models::radarr_models::{
|
use crate::models::radarr_models::{
|
||||||
AddMovieBody, AddMovieOptions, AddMovieSearchResult, Collection, CollectionMovie,
|
AddMovieBody, AddMovieOptions, AddMovieSearchResult, Collection, CollectionMovie,
|
||||||
DownloadRecord, IndexerSettings, MediaInfo, MinimumAvailability, Movie, MovieCollection,
|
DownloadRecord, IndexerSettings, MediaInfo, MinimumAvailability, Movie, MovieCollection,
|
||||||
MovieFile, RadarrRelease, Rating, RatingsList,
|
MovieFile, MovieMonitor, RadarrRelease, Rating, RatingsList,
|
||||||
};
|
};
|
||||||
use crate::models::servarr_models::{
|
use crate::models::servarr_models::{
|
||||||
Indexer, IndexerField, Language, Quality, QualityWrapper, RootFolder,
|
Indexer, IndexerField, Language, Quality, QualityWrapper, RootFolder,
|
||||||
@@ -470,13 +470,13 @@ pub(in crate::handlers::radarr_handlers) mod utils {
|
|||||||
tmdb_id: 1234,
|
tmdb_id: 1234,
|
||||||
title: "Test".to_owned(),
|
title: "Test".to_owned(),
|
||||||
root_folder_path: "/nfs2".to_owned(),
|
root_folder_path: "/nfs2".to_owned(),
|
||||||
minimum_availability: "announced".to_owned(),
|
minimum_availability: MinimumAvailability::Announced,
|
||||||
monitored: true,
|
monitored: true,
|
||||||
quality_profile_id: 2222,
|
quality_profile_id: 2222,
|
||||||
tags: Vec::new(),
|
tags: Vec::new(),
|
||||||
tag_input_string: Some("usenet, testing".into()),
|
tag_input_string: Some("usenet, testing".into()),
|
||||||
add_options: AddMovieOptions {
|
add_options: AddMovieOptions {
|
||||||
monitor: "movieOnly".to_owned(),
|
monitor: MovieMonitor::MovieOnly,
|
||||||
search_for_movie: true,
|
search_for_movie: true,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,8 +74,8 @@ impl AddSeriesHandler<'_, '_> {
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let path = root_folder_list.current_selection().path.clone();
|
let path = root_folder_list.current_selection().path.clone();
|
||||||
let monitor = monitor_list.current_selection().to_string();
|
let monitor = *monitor_list.current_selection();
|
||||||
let series_type = series_type_list.current_selection().to_string();
|
let series_type = *series_type_list.current_selection();
|
||||||
|
|
||||||
AddSeriesBody {
|
AddSeriesBody {
|
||||||
tvdb_id,
|
tvdb_id,
|
||||||
|
|||||||
@@ -1169,12 +1169,12 @@ mod tests {
|
|||||||
root_folder_path: "/nfs2".to_owned(),
|
root_folder_path: "/nfs2".to_owned(),
|
||||||
quality_profile_id: 2222,
|
quality_profile_id: 2222,
|
||||||
language_profile_id: 2222,
|
language_profile_id: 2222,
|
||||||
series_type: "standard".to_owned(),
|
series_type: SeriesType::Standard,
|
||||||
season_folder: true,
|
season_folder: true,
|
||||||
tags: Vec::default(),
|
tags: Vec::default(),
|
||||||
tag_input_string: Some("usenet, testing".to_owned()),
|
tag_input_string: Some("usenet, testing".to_owned()),
|
||||||
add_options: AddSeriesOptions {
|
add_options: AddSeriesOptions {
|
||||||
monitor: "all".to_owned(),
|
monitor: SeriesMonitor::All,
|
||||||
search_for_cutoff_unmet_episodes: true,
|
search_for_cutoff_unmet_episodes: true,
|
||||||
search_for_missing_episodes: true,
|
search_for_missing_episodes: true,
|
||||||
},
|
},
|
||||||
@@ -1647,12 +1647,12 @@ mod tests {
|
|||||||
root_folder_path: "/nfs2".to_owned(),
|
root_folder_path: "/nfs2".to_owned(),
|
||||||
quality_profile_id: 2222,
|
quality_profile_id: 2222,
|
||||||
language_profile_id: 2222,
|
language_profile_id: 2222,
|
||||||
series_type: "standard".to_owned(),
|
series_type: SeriesType::Standard,
|
||||||
season_folder: true,
|
season_folder: true,
|
||||||
tags: Vec::default(),
|
tags: Vec::default(),
|
||||||
tag_input_string: Some("usenet, testing".to_owned()),
|
tag_input_string: Some("usenet, testing".to_owned()),
|
||||||
add_options: AddSeriesOptions {
|
add_options: AddSeriesOptions {
|
||||||
monitor: "all".to_owned(),
|
monitor: SeriesMonitor::All,
|
||||||
search_for_cutoff_unmet_episodes: true,
|
search_for_cutoff_unmet_episodes: true,
|
||||||
search_for_missing_episodes: true,
|
search_for_missing_episodes: true,
|
||||||
},
|
},
|
||||||
@@ -1777,12 +1777,12 @@ mod tests {
|
|||||||
root_folder_path: "/nfs2".to_owned(),
|
root_folder_path: "/nfs2".to_owned(),
|
||||||
quality_profile_id: 2222,
|
quality_profile_id: 2222,
|
||||||
language_profile_id: 2222,
|
language_profile_id: 2222,
|
||||||
series_type: "standard".to_owned(),
|
series_type: SeriesType::Standard,
|
||||||
season_folder: true,
|
season_folder: true,
|
||||||
tags: Vec::default(),
|
tags: Vec::default(),
|
||||||
tag_input_string: Some("usenet, testing".to_owned()),
|
tag_input_string: Some("usenet, testing".to_owned()),
|
||||||
add_options: AddSeriesOptions {
|
add_options: AddSeriesOptions {
|
||||||
monitor: "all".to_owned(),
|
monitor: SeriesMonitor::All,
|
||||||
search_for_cutoff_unmet_episodes: true,
|
search_for_cutoff_unmet_episodes: true,
|
||||||
search_for_missing_episodes: true,
|
search_for_missing_episodes: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ pub struct AddMovieBody {
|
|||||||
pub title: String,
|
pub title: String,
|
||||||
pub root_folder_path: String,
|
pub root_folder_path: String,
|
||||||
pub quality_profile_id: i64,
|
pub quality_profile_id: i64,
|
||||||
pub minimum_availability: String,
|
pub minimum_availability: MinimumAvailability,
|
||||||
pub monitored: bool,
|
pub monitored: bool,
|
||||||
pub tags: Vec<i64>,
|
pub tags: Vec<i64>,
|
||||||
#[serde(skip_serializing, skip_deserializing)]
|
#[serde(skip_serializing, skip_deserializing)]
|
||||||
@@ -55,7 +55,7 @@ pub struct AddMovieSearchResult {
|
|||||||
#[derive(Default, Clone, Serialize, Debug, PartialEq, Eq)]
|
#[derive(Default, Clone, Serialize, Debug, PartialEq, Eq)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct AddMovieOptions {
|
pub struct AddMovieOptions {
|
||||||
pub monitor: String,
|
pub monitor: MovieMonitor,
|
||||||
pub search_for_movie: bool,
|
pub search_for_movie: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -268,8 +268,20 @@ pub enum MinimumAvailability {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(
|
#[derive(
|
||||||
Default, PartialEq, Eq, Clone, Copy, Debug, EnumIter, ValueEnum, Display, EnumDisplayStyle,
|
Serialize,
|
||||||
|
Deserialize,
|
||||||
|
Default,
|
||||||
|
PartialEq,
|
||||||
|
Eq,
|
||||||
|
Clone,
|
||||||
|
Copy,
|
||||||
|
Debug,
|
||||||
|
EnumIter,
|
||||||
|
ValueEnum,
|
||||||
|
Display,
|
||||||
|
EnumDisplayStyle,
|
||||||
)]
|
)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
#[strum(serialize_all = "camelCase")]
|
#[strum(serialize_all = "camelCase")]
|
||||||
pub enum MovieMonitor {
|
pub enum MovieMonitor {
|
||||||
#[default]
|
#[default]
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ pub struct AddSeriesBody {
|
|||||||
pub root_folder_path: String,
|
pub root_folder_path: String,
|
||||||
pub quality_profile_id: i64,
|
pub quality_profile_id: i64,
|
||||||
pub language_profile_id: i64,
|
pub language_profile_id: i64,
|
||||||
pub series_type: String,
|
pub series_type: SeriesType,
|
||||||
pub season_folder: bool,
|
pub season_folder: bool,
|
||||||
pub tags: Vec<i64>,
|
pub tags: Vec<i64>,
|
||||||
#[serde(skip_serializing, skip_deserializing)]
|
#[serde(skip_serializing, skip_deserializing)]
|
||||||
@@ -68,7 +68,7 @@ pub struct AddSeriesSearchResultStatistics {
|
|||||||
#[derive(Default, Clone, Serialize, Debug, PartialEq, Eq)]
|
#[derive(Default, Clone, Serialize, Debug, PartialEq, Eq)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct AddSeriesOptions {
|
pub struct AddSeriesOptions {
|
||||||
pub monitor: String,
|
pub monitor: SeriesMonitor,
|
||||||
pub search_for_cutoff_unmet_episodes: bool,
|
pub search_for_cutoff_unmet_episodes: bool,
|
||||||
pub search_for_missing_episodes: bool,
|
pub search_for_missing_episodes: bool,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
mod tests {
|
mod tests {
|
||||||
use crate::models::radarr_models::{
|
use crate::models::radarr_models::{
|
||||||
AddMovieBody, AddMovieOptions, Credit, DeleteMovieParams, DownloadRecord, EditMovieParams,
|
AddMovieBody, AddMovieOptions, Credit, DeleteMovieParams, DownloadRecord, EditMovieParams,
|
||||||
MinimumAvailability, Movie, MovieHistoryItem, RadarrReleaseDownloadBody,
|
MinimumAvailability, Movie, MovieHistoryItem, MovieMonitor, RadarrReleaseDownloadBody,
|
||||||
};
|
};
|
||||||
use crate::models::servarr_data::radarr::modals::MovieDetailsModal;
|
use crate::models::servarr_data::radarr::modals::MovieDetailsModal;
|
||||||
use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock;
|
use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock;
|
||||||
@@ -50,13 +50,13 @@ mod tests {
|
|||||||
tmdb_id: 1234,
|
tmdb_id: 1234,
|
||||||
title: "Test".to_owned(),
|
title: "Test".to_owned(),
|
||||||
root_folder_path: "/nfs2".to_owned(),
|
root_folder_path: "/nfs2".to_owned(),
|
||||||
minimum_availability: "announced".to_owned(),
|
minimum_availability: MinimumAvailability::Announced,
|
||||||
monitored: true,
|
monitored: true,
|
||||||
quality_profile_id: 2222,
|
quality_profile_id: 2222,
|
||||||
tags: vec![1, 2],
|
tags: vec![1, 2],
|
||||||
tag_input_string: Some("usenet, testing".into()),
|
tag_input_string: Some("usenet, testing".into()),
|
||||||
add_options: AddMovieOptions {
|
add_options: AddMovieOptions {
|
||||||
monitor: "movieOnly".to_owned(),
|
monitor: MovieMonitor::MovieOnly,
|
||||||
search_for_movie: true,
|
search_for_movie: true,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -99,13 +99,13 @@ mod tests {
|
|||||||
tmdb_id: 1234,
|
tmdb_id: 1234,
|
||||||
title: "Test".to_owned(),
|
title: "Test".to_owned(),
|
||||||
root_folder_path: "/nfs2".to_owned(),
|
root_folder_path: "/nfs2".to_owned(),
|
||||||
minimum_availability: "announced".to_owned(),
|
minimum_availability: MinimumAvailability::Announced,
|
||||||
monitored: true,
|
monitored: true,
|
||||||
quality_profile_id: 2222,
|
quality_profile_id: 2222,
|
||||||
tags: vec![1, 2],
|
tags: vec![1, 2],
|
||||||
tag_input_string: None,
|
tag_input_string: None,
|
||||||
add_options: AddMovieOptions {
|
add_options: AddMovieOptions {
|
||||||
monitor: "movieOnly".to_owned(),
|
monitor: MovieMonitor::MovieOnly,
|
||||||
search_for_movie: true,
|
search_for_movie: true,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
mod tests {
|
mod tests {
|
||||||
use crate::models::servarr_data::sonarr::sonarr_data::ActiveSonarrBlock;
|
use crate::models::servarr_data::sonarr::sonarr_data::ActiveSonarrBlock;
|
||||||
use crate::models::sonarr_models::{
|
use crate::models::sonarr_models::{
|
||||||
AddSeriesBody, AddSeriesOptions, DeleteSeriesParams, EditSeriesParams, Series, SeriesType,
|
AddSeriesBody, AddSeriesOptions, DeleteSeriesParams, EditSeriesParams, Series, SeriesMonitor,
|
||||||
SonarrHistoryItem, SonarrSerdeable,
|
SeriesType, SonarrHistoryItem, SonarrSerdeable,
|
||||||
};
|
};
|
||||||
use crate::models::stateful_table::{SortOption, StatefulTable};
|
use crate::models::stateful_table::{SortOption, StatefulTable};
|
||||||
use crate::network::NetworkResource;
|
use crate::network::NetworkResource;
|
||||||
@@ -27,12 +27,12 @@ mod tests {
|
|||||||
root_folder_path: "/nfs2".to_owned(),
|
root_folder_path: "/nfs2".to_owned(),
|
||||||
quality_profile_id: 2222,
|
quality_profile_id: 2222,
|
||||||
language_profile_id: 2222,
|
language_profile_id: 2222,
|
||||||
series_type: "standard".to_owned(),
|
series_type: SeriesType::Standard,
|
||||||
season_folder: true,
|
season_folder: true,
|
||||||
tags: Vec::new(),
|
tags: Vec::new(),
|
||||||
tag_input_string: Some("usenet, testing".to_owned()),
|
tag_input_string: Some("usenet, testing".to_owned()),
|
||||||
add_options: AddSeriesOptions {
|
add_options: AddSeriesOptions {
|
||||||
monitor: "all".to_owned(),
|
monitor: SeriesMonitor::All,
|
||||||
search_for_cutoff_unmet_episodes: true,
|
search_for_cutoff_unmet_episodes: true,
|
||||||
search_for_missing_episodes: true,
|
search_for_missing_episodes: true,
|
||||||
},
|
},
|
||||||
@@ -82,12 +82,12 @@ mod tests {
|
|||||||
root_folder_path: "/nfs2".to_owned(),
|
root_folder_path: "/nfs2".to_owned(),
|
||||||
quality_profile_id: 2222,
|
quality_profile_id: 2222,
|
||||||
language_profile_id: 2222,
|
language_profile_id: 2222,
|
||||||
series_type: "standard".to_owned(),
|
series_type: SeriesType::Standard,
|
||||||
season_folder: true,
|
season_folder: true,
|
||||||
tags: vec![1, 2],
|
tags: vec![1, 2],
|
||||||
tag_input_string: None,
|
tag_input_string: None,
|
||||||
add_options: AddSeriesOptions {
|
add_options: AddSeriesOptions {
|
||||||
monitor: "all".to_owned(),
|
monitor: SeriesMonitor::All,
|
||||||
search_for_cutoff_unmet_episodes: true,
|
search_for_cutoff_unmet_episodes: true,
|
||||||
search_for_missing_episodes: true,
|
search_for_missing_episodes: true,
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user