summaryrefslogtreecommitdiff
path: root/src/server.rs
diff options
context:
space:
mode:
authorKjetil Orbekk <kjetil.orbekk@gmail.com>2020-01-29 19:15:28 -0500
committerKjetil Orbekk <kjetil.orbekk@gmail.com>2020-01-29 19:15:28 -0500
commitc8db39dea2cf50dd1fa6c499600e09818b8db44a (patch)
treeb2eb940f9769323cd1d3e1c92bbe3c16d38d9dd6 /src/server.rs
parent6c16bcd190328443f15029fc3ee2467b6c270eed (diff)
Add database support
Diffstat (limited to 'src/server.rs')
-rw-r--r--src/server.rs50
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])