diff options
Diffstat (limited to 'src/server.rs')
-rw-r--r-- | src/server.rs | 50 |
1 files changed, 31 insertions, 19 deletions
diff --git a/src/server.rs b/src/server.rs index 6f05afe..2c7baad 100644 --- a/src/server.rs +++ b/src/server.rs @@ -1,11 +1,17 @@ +use rocket::config; +use rocket::config::Environment; +use rocket::config::Value; use rocket::response; use rocket::State; use rocket_contrib::templates::Template; use std::collections::HashMap; -use crate::Config; use crate::strava; +pub struct Params { + pub base_url: String, +} + #[get("/")] fn index() -> Template { let mut context = HashMap::new(); @@ -15,30 +21,36 @@ fn index() -> Template { } #[get("/link_strava_callback?<code>")] -fn link_strava_callback(config: State<Config>, code: String) -> Result<String, impl std::error::Error> { - strava::exchange_token( - &config.client_id, &config.client_secret, &code) +fn link_strava_callback( + config: State<Params>, + code: String, +) -> Result<String, impl std::error::Error> { + strava::exchange_token("&config.client_id", "&config.client_secret", &code) .map(|t| format!("{:#?}", t)) } #[get("/link_strava")] -fn link_strava(config: State<Config>) -> response::Redirect { - response::Redirect::to( - format!( - concat!( - "https://www.strava.com/oauth/authorize?", - "client_id={}&", - "response_type=code&", - "redirect_uri={}&", - "approval_prompt=force&", - "scope=read", - ), - config.client_id, - format!("{}/link_strava_callback", config.base_url)) - ) +fn link_strava(config: State<Params>) -> response::Redirect { + response::Redirect::to(format!( + concat!( + "https://www.strava.com/oauth/authorize?", + "client_id={}&", + "response_type=code&", + "redirect_uri={}&", + "approval_prompt=force&", + "scope=read", + ), + "config.client_id", + format!("{}/link_strava_callback", config.base_url) + )) } -pub fn start(config: Config) { +pub fn start(db_url: &str, config: Params) { + let mut database_config = HashMap::new(); + let mut databases = HashMap::new(); + database_config.insert("url", Value::from(db_url)); + databases.insert("db", Value::from(database_config)); + rocket::ignite() .manage(config) .mount("/", routes![index, link_strava, link_strava_callback]) |