From f0a827e4bb2dec41aa3060a2caafd08f9570ba73 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Sat, 26 Sep 2020 15:15:32 +0200 Subject: [PATCH] Fix preview grouping --- src/dto_helpers.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/dto_helpers.rs b/src/dto_helpers.rs index ca55297..43090bb 100644 --- a/src/dto_helpers.rs +++ b/src/dto_helpers.rs @@ -32,7 +32,7 @@ pub fn load_title(db: &PgConnection, config: &Config, title: Title) -> QueryResu title, title_names, title_descriptions, title_cast, title_genres, title_ratings, title_images, title_media, title_subtitles, - title_preview, + Some(title_preview), )) } @@ -63,8 +63,12 @@ pub fn load_titles(db: &PgConnection, config: &Config, titles: Vec<Title>) -> Qu let title_subtitles: Vec<Vec<TitleSubtitle>> = TitleSubtitle::belonging_to(&titles) .load::<TitleSubtitle>(db)? .grouped_by(&titles); - let title_preview: Vec<TitlePreview> = TitlePreview::belonging_to(&titles) - .load::<TitlePreview>(db)?; + let title_preview: Vec<Option<TitlePreview>> = TitlePreview::belonging_to(&titles) + .load::<TitlePreview>(db)? + .grouped_by(&titles) + .into_iter() + .map(|vec: Vec<TitlePreview>| vec.into_iter().next()) + .collect::<Vec<_>>(); Ok(titles.into_iter() .zip(title_names) .zip(title_descriptions) @@ -94,7 +98,7 @@ fn process_title( title: Title, names: Vec<TitleName>, descriptions: Vec<TitleDescription>, cast: Vec<(TitleCast, Person)>, genres: Vec<(TitleGenre, Genre)>, ratings: Vec<TitleRating>, images: Vec<TitleImage>, media: Vec<TitleMedium>, subtitles: Vec<TitleSubtitle>, - preview: TitlePreview, + preview: Option<TitlePreview>, ) -> TitleDto { TitleDto::of( title, @@ -123,7 +127,9 @@ fn process_title( subtitles.into_iter().filter_map(|src| { SubtitleDto::of(src, &config).ok() }).collect::<Vec<_>>(), - preview.src.and_then(|preview| absolute_url(config, preview).ok()) + preview + .and_then(|preview| preview.src) + .and_then(|preview| absolute_url(config, preview).ok()) ) } -- GitLab