From e3e7e4442b50aba5b1d0b844ae6fcf4e6d037ac3 Mon Sep 17 00:00:00 2001 From: Chris Jean-Marie Date: Mon, 9 Dec 2024 14:34:08 +0000 Subject: [PATCH] Add current fire rating to dashboard --- backend/src/routes.rs | 44 +++++++++++++++++++++++++++----- backend/templates/dashboard.html | 21 +++++++++++---- 2 files changed, 54 insertions(+), 11 deletions(-) diff --git a/backend/src/routes.rs b/backend/src/routes.rs index 7193ff9..bdba892 100644 --- a/backend/src/routes.rs +++ b/backend/src/routes.rs @@ -63,6 +63,7 @@ struct DashboardTemplate { logged_in: bool, user: UserData, user_roles: Vec, + fire_rating: String, } pub async fn index( @@ -75,7 +76,7 @@ pub async fn index( if logged_in { // Extract the user data. let user = user_data.as_ref().unwrap().clone(); - + if is_authorized("/dashboard", user_data, db_pool).await { Redirect::to("/dashboard").into_response() } else { @@ -83,7 +84,10 @@ pub async fn index( HtmlTemplate(template).into_response() } } else { - let template = IndexTemplate { logged_in, user: UserData::default() }; + let template = IndexTemplate { + logged_in, + user: UserData::default(), + }; HtmlTemplate(template).into_response() } } @@ -104,10 +108,13 @@ pub async fn dashboard( // Get user roles let user_roles = get_user_roles_display(userid, &db_pool.clone()).await; + let fire_rating = get_seguin_fire_rating().await; + let template = DashboardTemplate { logged_in, user, user_roles, + fire_rating, }; HtmlTemplate(template).into_response() } else { @@ -219,10 +226,9 @@ pub async fn useradmin( let userid = user_data.as_ref().map(|s| s.id.clone()).unwrap_or_default(); let users = sqlx::query_as::<_, UserData>("SELECT * FROM users") - .fetch_all(&db_pool) - .await - .unwrap(); - + .fetch_all(&db_pool) + .await + .unwrap(); if is_authorized("/useradmin", user_data, db_pool.clone()).await { // Get user roles @@ -308,3 +314,29 @@ pub async fn contact(Extension(user_data): Extension>) -> impl let template = ContactTemplate { logged_in, user }; HtmlTemplate(template) } + +pub async fn get_seguin_fire_rating() -> String { + let response = reqwest::get("https://www.seguin.ca/en/explore-play/firerating.aspx") + .await + .unwrap(); + + let fire_rating: String; + + let body = response.text().await.unwrap(); + + let result = body.find(r#""#); + if let Some(link_end) = link_end { + fire_rating = link[..link_end +1].to_string(); + } else { + println!("not found"); + fire_rating = "0".to_string(); + } + } else { + fire_rating = "0".to_string(); + } + + fire_rating +} diff --git a/backend/templates/dashboard.html b/backend/templates/dashboard.html index 2321b8f..21971a7 100644 --- a/backend/templates/dashboard.html +++ b/backend/templates/dashboard.html @@ -1,11 +1,21 @@ {% extends "authorized.html" %} {% block center %} +
+
+

Points of Interest

+ TLC Creations + Seguin Township +
+
+
+ Fire Rating: MODERATE +

Web links

-

TLC Creations

-

Fonts

{% endblock center %} \ No newline at end of file