diff options
Diffstat (limited to 'src/db.rs')
-rw-r--r-- | src/db.rs | 28 |
1 files changed, 17 insertions, 11 deletions
@@ -137,16 +137,14 @@ pub fn get_strava_token( Ok(token) } -pub fn update_strava_token( - conn: &PgConnection, - token: &models::StravaToken) -> Result<(), Error> { +pub fn update_strava_token(conn: &PgConnection, token: &models::StravaToken) -> Result<(), Error> { use crate::schema::strava_tokens; - diesel::update(strava_tokens::table).set(token) + diesel::update(strava_tokens::table) + .set(token) .execute(conn)?; Ok(()) } - pub fn insert_task(conn: &PgConnection, task: &models::NewTask) -> Result<i64, Error> { use crate::schema::tasks; let id = diesel::insert_into(tasks::table) @@ -202,19 +200,27 @@ pub fn take_task( }) } -pub fn find_missing_data(conn: &PgConnection, username: &str, data_type: models::DataType, ids: &[i64]) - -> Result<Vec<i64>, Error> { - use diesel::pg::expression::dsl::any; +pub fn find_missing_data( + conn: &PgConnection, + username: &str, + data_type: models::DataType, + ids: &[i64], +) -> Result<Vec<i64>, Error> { use crate::schema::raw_data; + use diesel::pg::expression::dsl::any; use std::collections::HashSet; let present: HashSet<i64> = raw_data::table .select(raw_data::id) - .filter(raw_data::username.eq(username) + .filter( + raw_data::username + .eq(username) .and(raw_data::data_type.eq(data_type)) - .and(raw_data::id.eq(any(ids)))) + .and(raw_data::id.eq(any(ids))), + ) .get_results::<i64>(conn)? - .into_iter().collect(); + .into_iter() + .collect(); let ids: HashSet<i64> = ids.iter().map(|v| *v).collect(); let missing = ids.difference(&present); |