summaryrefslogtreecommitdiff
path: root/src/server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server.rs')
-rw-r--r--src/server.rs25
1 files changed, 12 insertions, 13 deletions
diff --git a/src/server.rs b/src/server.rs
index 79c3226..abc430b 100644
--- a/src/server.rs
+++ b/src/server.rs
@@ -14,21 +14,16 @@ use rocket::response::Redirect;
use rocket::State;
use rocket_contrib::templates::Template;
use std::collections::HashMap;
-use threadpool::ThreadPool;
-use std::sync::Mutex;
use std::sync::mpsc::Sender;
+use std::sync::Mutex;
+use threadpool::ThreadPool;
use crate::db;
use crate::error::Error;
use crate::importer;
use crate::models;
use crate::strava;
-
-pub struct Params {
- pub base_url: String,
- pub strava_client_id: String,
- pub strava_client_secret: String,
-}
+use crate::Params;
#[database("db")]
pub struct Db(diesel::PgConnection);
@@ -62,7 +57,7 @@ impl<'a, 'r> FromRequest<'a, 'r> for LoggedInUser {
Ok(user) => {
info!("Credentials: {:?}", user);
Outcome::Success(user)
- },
+ }
Err(Error::NotFound) => Outcome::Forward(()),
Err(e) => Outcome::Failure((Status::InternalServerError, e)),
}
@@ -139,9 +134,13 @@ fn link_strava_callback(
fn import_strava(
conn: Db,
tx: State<Mutex<Sender<importer::Command>>>,
- user: LoggedInUser) -> Result<(), Error> {
+ user: LoggedInUser,
+) -> Result<(), Error> {
let user = db::get_user(&*conn, &user.username)?;
- tx.lock().expect("FIX").send(importer::Command::ImportStravaUser(user)).expect("FIX");
+ tx.lock()
+ .expect("FIX")
+ .send(importer::Command::ImportStravaUser(user))
+ .expect("FIX");
Ok(())
}
@@ -154,7 +153,7 @@ fn link_strava(params: State<Params>) -> Redirect {
"response_type=code&",
"redirect_uri={}&",
"approval_prompt=force&",
- "scope=read",
+ "scope=read_all,activity:read_all,profile:read_all",
),
params.strava_client_id,
format!("{}/link_strava_callback", params.base_url)
@@ -181,7 +180,7 @@ pub fn start(conn: diesel::PgConnection, db_url: &str, base_url: &str) {
.unwrap();
let importer_pool = ThreadPool::with_name("import".to_string(), importer::WORKERS);
- let tx = importer::run(importer_pool.clone(), conn);
+ let tx = importer::run(importer_pool.clone(), conn, &params);
rocket::custom(config)
.manage(params)