Moved a batch update into a db transaction.
This commit is contained in:
parent
893218346d
commit
c942e357b7
@ -7,7 +7,9 @@ use index_feed::Database;
|
|||||||
use errors::*;
|
use errors::*;
|
||||||
use chrono::prelude::*;
|
use chrono::prelude::*;
|
||||||
|
|
||||||
// TODO: Needs cleanup.
|
/// Random db querries helper functions.
|
||||||
|
/// Probably needs cleanup.
|
||||||
|
|
||||||
|
|
||||||
pub fn get_sources(con: &SqliteConnection) -> QueryResult<Vec<Source>> {
|
pub fn get_sources(con: &SqliteConnection) -> QueryResult<Vec<Source>> {
|
||||||
use schema::source::dsl::*;
|
use schema::source::dsl::*;
|
||||||
@ -23,14 +25,6 @@ pub fn get_podcasts(con: &SqliteConnection) -> QueryResult<Vec<Podcast>> {
|
|||||||
pds
|
pds
|
||||||
}
|
}
|
||||||
|
|
||||||
// Maybe later.
|
|
||||||
// pub fn get_podcasts_ids(con: &SqliteConnection) -> QueryResult<Vec<i32>> {
|
|
||||||
// use schema::podcast::dsl::*;
|
|
||||||
|
|
||||||
// let pds = podcast.select(id).load::<i32>(con);
|
|
||||||
// pds
|
|
||||||
// }
|
|
||||||
|
|
||||||
pub fn get_episodes(con: &SqliteConnection) -> QueryResult<Vec<Episode>> {
|
pub fn get_episodes(con: &SqliteConnection) -> QueryResult<Vec<Episode>> {
|
||||||
use schema::episode::dsl::*;
|
use schema::episode::dsl::*;
|
||||||
|
|
||||||
@ -177,14 +171,16 @@ pub fn delete_podcast_episodes(connection: &SqliteConnection, parent_id: i32) ->
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: make it transaction.
|
|
||||||
pub fn update_none_to_played_now(connection: &SqliteConnection, parent: &Podcast) -> Result<()> {
|
pub fn update_none_to_played_now(connection: &SqliteConnection, parent: &Podcast) -> Result<()> {
|
||||||
use schema::episode::dsl::*;
|
use schema::episode::dsl::*;
|
||||||
|
|
||||||
let epoch_now = Utc::now().timestamp() as i32;
|
let epoch_now = Utc::now().timestamp() as i32;
|
||||||
diesel::update(Episode::belonging_to(parent).filter(played.is_null()))
|
connection.transaction(|| -> Result<()> {
|
||||||
.set(played.eq(Some(epoch_now)))
|
diesel::update(Episode::belonging_to(parent).filter(played.is_null()))
|
||||||
.execute(connection)?;
|
.set(played.eq(Some(epoch_now)))
|
||||||
|
.execute(connection)?;
|
||||||
|
Ok(())
|
||||||
|
})?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user