diff options
Diffstat (limited to 'src/importer.rs')
-rw-r--r-- | src/importer.rs | 52 |
1 files changed, 29 insertions, 23 deletions
diff --git a/src/importer.rs b/src/importer.rs index a32a0ee..f5a8bf4 100644 --- a/src/importer.rs +++ b/src/importer.rs @@ -5,6 +5,7 @@ use serde::Deserialize; use serde::Serialize; use serde_json::to_value; use serde_json::Value; +use std::collections::HashSet; use std::sync::Arc; use std::sync::Mutex; use std::sync::RwLock; @@ -12,7 +13,6 @@ use std::thread; use std::time::Duration; use std::time::Instant; use threadpool::ThreadPool; -use std::collections::HashSet; use crate::db; use crate::diesel::Connection; @@ -27,7 +27,7 @@ pub const EMPTY_PARAMS: &[(&str, &str)] = &[]; #[derive(Debug, Clone, Serialize, Deserialize)] pub enum Command { ImportStravaUser { username: String }, - ImportStravaActivity { username: String, id: i64, }, + ImportStravaActivity { username: String, id: i64 }, ProcessAllRawData, ProcessRawData(models::RawDataKey), } @@ -67,8 +67,12 @@ fn handle_one_task<S: strava::StravaApi>( let command = serde_json::from_value(task.payload.clone())?; match command { - Command::ImportStravaUser { username } => import_strava_user(shared, task, username.as_str())?, - Command::ImportStravaActivity { username, id } => import_strava_activity(shared, task, username.as_str(), id)?, + Command::ImportStravaUser { username } => { + import_strava_user(shared, task, username.as_str())? + } + Command::ImportStravaActivity { username, id } => { + import_strava_activity(shared, task, username.as_str(), id)? + } Command::ProcessAllRawData => process_all_raw_data(shared, task.clone())?, Command::ProcessRawData(ref d) => process_raw_data(shared, d, task.clone())?, } @@ -174,7 +178,7 @@ fn process_strava_activity<S: strava::StravaApi>( task.state = models::TaskState::SUCCESSFUL; let conn = &shared.conn.lock().unwrap(); db::update_task(conn, task)?; - return Ok(()) + return Ok(()); } let json_error = || Error::UnexpectedJson(data.payload.clone()); @@ -187,7 +191,7 @@ fn process_strava_activity<S: strava::StravaApi>( task.state = models::TaskState::SUCCESSFUL; let conn = &shared.conn.lock().unwrap(); db::update_task(conn, task)?; - return Ok(()) + return Ok(()); } }?; let entry_type = entry_payload["type"] @@ -271,8 +275,8 @@ fn import_strava_activity<S: strava::StravaApi>( shared: Arc<ImporterSharedData<S>>, mut task: models::Task, username: &str, - id: i64 - ) -> Result<(), Error> { + id: i64, +) -> Result<(), Error> { let strava = shared.strava.read().unwrap(); let user = db::get_user(&shared.conn.lock().unwrap(), username)?; @@ -295,20 +299,21 @@ fn import_strava_activity<S: strava::StravaApi>( payload: activity, entry_type: None, entry_id: None, - })?; + }, + )?; db::insert_task( conn, &models::NewTask { start_at: now, state: models::TaskState::NEW, username: username, - payload: &to_value( - Command::ProcessRawData(models::RawDataKey { - data_type: models::DataType::StravaActivity, - id: id, - username: username.to_string(), - }))? - })?; + payload: &to_value(Command::ProcessRawData(models::RawDataKey { + data_type: models::DataType::StravaActivity, + id: id, + username: username.to_string(), + }))?, + }, + )?; task.state = models::TaskState::SUCCESSFUL; db::update_task(conn, task)?; Ok(()) @@ -354,7 +359,8 @@ fn import_strava_user<S: strava::StravaApi>( &shared.conn.lock().unwrap(), username, models::DataType::StravaActivity, - &activity_ids)?; + &activity_ids, + )?; missing_ids.extend(missing_on_page.iter()); if missing_on_page.len() < per_page / 3 { @@ -377,12 +383,12 @@ fn import_strava_user<S: strava::StravaApi>( start_at: now + chrono::Duration::seconds(i as i64 * 10), state: models::TaskState::NEW, username: username, - payload: &to_value( - Command::ImportStravaActivity { - username: username.to_string(), - id: missing_id, - })?, - })?; + payload: &to_value(Command::ImportStravaActivity { + username: username.to_string(), + id: missing_id, + })?, + }, + )?; } task.state = models::TaskState::SUCCESSFUL; db::update_task(conn, task)?; |