From d231cc165fe2dccc1987824cdd80928e440a5980 Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Mon, 22 Jan 2018 14:51:31 +0200 Subject: [PATCH] Fix batch indexing. --- hammond-data/src/dbqueries.rs | 20 ++++++++++---------- hammond-data/src/feed.rs | 13 +++---------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/hammond-data/src/dbqueries.rs b/hammond-data/src/dbqueries.rs index 0cdf3de..c92ffd4 100644 --- a/hammond-data/src/dbqueries.rs +++ b/hammond-data/src/dbqueries.rs @@ -293,17 +293,17 @@ pub(crate) fn episode_exists(title_: &str, podcast_id_: i32) -> Result { .map_err(From::from) } -// pub(crate) fn index_new_episodes(eps: &[NewEpisode]) -> Result<()> { -// use schema::episode::dsl::*; -// let db = connection(); -// let con = db.get()?; +pub(crate) fn index_new_episodes(eps: &[NewEpisode]) -> Result<()> { + use schema::episode::dsl::*; + let db = connection(); + let con = db.get()?; -// diesel::insert_into(episode) -// .values(eps) -// .execute(&con) -// .map_err(From::from) -// .map(|_| ()) -// } + diesel::insert_into(episode) + .values(eps) + .execute(&*con) + .map_err(From::from) + .map(|_| ()) +} pub fn update_none_to_played_now(parent: &Podcast) -> Result { use schema::episode::dsl::*; diff --git a/hammond-data/src/feed.rs b/hammond-data/src/feed.rs index 19d96a8..5d16b20 100644 --- a/hammond-data/src/feed.rs +++ b/hammond-data/src/feed.rs @@ -4,9 +4,9 @@ use futures::future::*; use itertools::{Either, Itertools}; use rss; -// use dbqueries; +use dbqueries; use errors::*; -use models::{IndexState, Insert, Update}; +use models::{IndexState, Update}; use models::{NewEpisode, NewPodcast, Podcast}; use pipeline::*; @@ -47,14 +47,7 @@ impl Feed { .and_then(|(insert, update)| { if !insert.is_empty() { info!("Indexing {} episodes.", insert.len()); - // dbqueries::index_new_episodes(insert.as_slice())?; - // FIXME: workaround cause of a diesel 1.1 reggression. - insert.iter().for_each(|ep| { - if let Err(err) = ep.insert() { - error!("Failed to index episode: {:?}.", ep.title()); - error!("Error msg: {}", err); - } - }); + dbqueries::index_new_episodes(insert.as_slice())?; } Ok((insert, update)) })