dev api key
This commit is contained in:
parent
06c837b244
commit
89091a03d3
11 changed files with 791 additions and 762 deletions
83
src/web.rs
83
src/web.rs
|
|
@ -1,38 +1,20 @@
|
|||
use axum::{
|
||||
extract::State,
|
||||
response::Html,
|
||||
};
|
||||
use axum::{extract::State, response::Html};
|
||||
use axum_extra::extract::cookie::CookieJar;
|
||||
|
||||
use crate::{
|
||||
AppState,
|
||||
db,
|
||||
leaderboard,
|
||||
};
|
||||
use crate::{AppState, db, leaderboard};
|
||||
|
||||
pub async fn index(
|
||||
State(state): State<AppState>,
|
||||
jar: CookieJar,
|
||||
) -> Html<String> {
|
||||
let groups =
|
||||
leaderboard::build(&state.db)
|
||||
pub async fn index(State(state): State<AppState>, jar: CookieJar) -> Html<String> {
|
||||
let groups = leaderboard::build(&state.db).await.unwrap_or_default();
|
||||
|
||||
let current_user = match jar.get("county_session") {
|
||||
Some(cookie) => db::athlete_for_session(&state.db, cookie.value())
|
||||
.await
|
||||
.unwrap_or_default();
|
||||
.ok()
|
||||
.flatten()
|
||||
.map(|(_, name)| name),
|
||||
|
||||
let current_user =
|
||||
match jar.get("county_session") {
|
||||
Some(cookie) =>
|
||||
db::athlete_for_session(
|
||||
&state.db,
|
||||
cookie.value(),
|
||||
)
|
||||
.await
|
||||
.ok()
|
||||
.flatten()
|
||||
.map(|(_, name)| name),
|
||||
|
||||
None => None,
|
||||
};
|
||||
None => None,
|
||||
};
|
||||
|
||||
let mut html = String::from(
|
||||
r#"<!doctype html>
|
||||
|
|
@ -113,7 +95,7 @@ button, .button {
|
|||
html.push_str(
|
||||
r#"<a class="button" href="/oauth/start">
|
||||
Mit Intervals.icu verbinden
|
||||
</a>"#
|
||||
</a>"#,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -123,7 +105,7 @@ button, .button {
|
|||
html.push_str(
|
||||
r#"<div class="card">
|
||||
Noch keine Landkreisüberquerungen.
|
||||
</div>"#
|
||||
</div>"#,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -153,31 +135,28 @@ button, .button {
|
|||
<th>HR</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>"#
|
||||
<tbody>"#,
|
||||
);
|
||||
|
||||
for row in group.rows {
|
||||
let interval =
|
||||
match row.interval_url {
|
||||
Some(url) =>
|
||||
format!(
|
||||
"<a href=\"{}\" target=\"_blank\">Intervall</a>",
|
||||
escape_html(&url)
|
||||
),
|
||||
let interval = match row.interval_url {
|
||||
Some(url) => format!(
|
||||
"<a href=\"{}\" target=\"_blank\">Intervall</a>",
|
||||
escape_html(&url)
|
||||
),
|
||||
|
||||
None =>
|
||||
"<span class=\"small\">—</span>".into(),
|
||||
};
|
||||
None => "<span class=\"small\">—</span>".into(),
|
||||
};
|
||||
|
||||
let power =
|
||||
row.average_watts
|
||||
.map(|v| format!("{:.0} W", v))
|
||||
.unwrap_or_else(|| "—".into());
|
||||
let power = row
|
||||
.average_watts
|
||||
.map(|v| format!("{:.0} W", v))
|
||||
.unwrap_or_else(|| "—".into());
|
||||
|
||||
let hr =
|
||||
row.average_heartrate
|
||||
.map(|v| format!("{:.0} bpm", v))
|
||||
.unwrap_or_else(|| "—".into());
|
||||
let hr = row
|
||||
.average_heartrate
|
||||
.map(|v| format!("{:.0} bpm", v))
|
||||
.unwrap_or_else(|| "—".into());
|
||||
|
||||
html.push_str(&format!(
|
||||
r#"<tr>
|
||||
|
|
@ -207,7 +186,7 @@ button, .button {
|
|||
Datenquelle: Intervals.icu · Landkreisgeometrien: VG250
|
||||
</footer>
|
||||
</body>
|
||||
</html>"#
|
||||
</html>"#,
|
||||
);
|
||||
|
||||
Html(html)
|
||||
|
|
|
|||
Loading…
Reference in a new issue