feat(handler): Blocklist handler support
This commit is contained in:
@@ -19,7 +19,7 @@ use crate::{
|
||||
LogResponse, QualityProfile, QueueEvent, RootFolder, SecurityConfig, Tag, Update,
|
||||
},
|
||||
sonarr_models::{
|
||||
AddSeriesBody, AddSeriesOptions, AddSeriesSearchResult, BlocklistResponse,
|
||||
AddSeriesBody, AddSeriesOptions, AddSeriesSearchResult, BlocklistItem, BlocklistResponse,
|
||||
DeleteSeriesParams, DownloadRecord, DownloadsResponse, EditSeriesParams, Episode,
|
||||
IndexerSettings, Series, SonarrCommandBody, SonarrHistoryItem, SonarrHistoryWrapper,
|
||||
SonarrRelease, SonarrReleaseDownloadBody, SonarrSerdeable, SonarrTask, SonarrTaskName,
|
||||
@@ -1303,7 +1303,27 @@ impl<'a, 'b> Network<'a, 'b> {
|
||||
app.get_current_route(),
|
||||
Route::Sonarr(ActiveSonarrBlock::BlocklistSortPrompt, _)
|
||||
) {
|
||||
let mut blocklist_vec = blocklist_resp.records;
|
||||
let mut blocklist_vec: Vec<BlocklistItem> = blocklist_resp
|
||||
.records
|
||||
.into_iter()
|
||||
.map(|item| {
|
||||
if let Some(series) = app
|
||||
.data
|
||||
.sonarr_data
|
||||
.series
|
||||
.items
|
||||
.iter()
|
||||
.find(|it| it.id == item.series_id)
|
||||
{
|
||||
BlocklistItem {
|
||||
series_title: Some(series.title.text.clone()),
|
||||
..item
|
||||
}
|
||||
} else {
|
||||
item
|
||||
}
|
||||
})
|
||||
.collect();
|
||||
blocklist_vec.sort_by(|a, b| a.id.cmp(&b.id));
|
||||
app.data.sonarr_data.blocklist.set_items(blocklist_vec);
|
||||
app.data.sonarr_data.blocklist.apply_sorting_toggle(false);
|
||||
|
||||
@@ -1956,6 +1956,7 @@ mod test {
|
||||
BlocklistItem {
|
||||
id: 123,
|
||||
series_id: 1007,
|
||||
series_title: Some("Z Series".into()),
|
||||
source_title: "z series".into(),
|
||||
episode_ids: vec![Number::from(42020)],
|
||||
..blocklist_item()
|
||||
@@ -1978,6 +1979,17 @@ mod test {
|
||||
None,
|
||||
)
|
||||
.await;
|
||||
app_arc
|
||||
.lock()
|
||||
.await
|
||||
.data
|
||||
.sonarr_data
|
||||
.series
|
||||
.set_items(vec![Series {
|
||||
id: 1007,
|
||||
title: "Z Series".into(),
|
||||
..series()
|
||||
}]);
|
||||
app_arc.lock().await.data.sonarr_data.blocklist.sort_asc = true;
|
||||
if use_custom_sorting {
|
||||
let cmp_fn = |a: &BlocklistItem, b: &BlocklistItem| {
|
||||
@@ -6682,6 +6694,7 @@ mod test {
|
||||
BlocklistItem {
|
||||
id: 1,
|
||||
series_id: 1,
|
||||
series_title: None,
|
||||
episode_ids: vec![Number::from(1)],
|
||||
source_title: "Test Source Title".to_owned(),
|
||||
language: language(),
|
||||
|
||||
Reference in New Issue
Block a user