summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs
index 235c71f..c745816 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -3,11 +3,17 @@ extern crate fern;
#[macro_use]
extern crate log;
extern crate clap;
+
use clap::App;
use clap::Arg;
use clap::SubCommand;
use diesel::connection::Connection;
use diesel::pg::PgConnection;
+use pjournal::importer;
+use pjournal::models;
+use pjournal::db;
+use chrono::Utc;
+use serde_json::to_value;
fn setup_logger() -> Result<(), fern::InitError> {
use fern::colors::{Color, ColoredLevelConfig};
@@ -112,6 +118,10 @@ fn main() {
.arg(Arg::with_name("USERNAME").required(true).index(1))
.arg(Arg::with_name("PASSWORD").required(true).index(2)),
)
+ .subcommand(
+ SubCommand::with_name("process_all_data")
+ .about("create a ProcessAllRawData task")
+ )
.get_matches();
setup_logger().expect("logger");
@@ -124,7 +134,7 @@ fn main() {
let conn = PgConnection::establish(db_url).unwrap();
if let Some(matches) = matches.subcommand_matches("init") {
- let config = pjournal::models::Config {
+ let config = models::Config {
strava_client_id: matches.value_of("strava_client_id").unwrap().to_string(),
strava_client_secret: matches
.value_of("strava_client_secret")
@@ -134,11 +144,20 @@ fn main() {
singleton: true,
};
- pjournal::db::create_config(&conn, &config).unwrap();
+ db::create_config(&conn, &config).unwrap();
} else if let Some(matches) = matches.subcommand_matches("adduser") {
let user = matches.value_of("USERNAME").unwrap();
let password = matches.value_of("PASSWORD").unwrap();
- pjournal::db::adduser(&conn, user, password).unwrap();
+ db::adduser(&conn, user, password).unwrap();
+ } else if let Some(_matches) = matches.subcommand_matches("process_all_data") {
+ let command = importer::Command::ProcessAllRawData;
+ db::insert_task(
+ &conn, &models::NewTask {
+ start_at: Utc::now(),
+ state: models::TaskState::NEW,
+ username: "system",
+ payload: &to_value(command).unwrap(),
+ }).expect("insert");
} else {
info!("Start server");
pjournal::server::start(conn, db_url, base_url);