From b48b689aeb80458429314e99cf030a7c6c217bd1 Mon Sep 17 00:00:00 2001 From: Philipp Hofer Date: Tue, 7 Oct 2025 18:53:13 +0200 Subject: [PATCH] allow ergo entry --- src/tera/ergo.rs | 82 ++++++++++++++++++++++++------------------------ 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/src/tera/ergo.rs b/src/tera/ergo.rs index 64b99e3..b27ea33 100644 --- a/src/tera/ergo.rs +++ b/src/tera/ergo.rs @@ -145,47 +145,47 @@ pub struct UserAdd { sex: String, } -//#[post("/set-data", data = "")] -//async fn new_user(db: &State, data: Form, user: User) -> Flash { -// if user.has_role(db, "ergo").await { -// return Flash::error(Redirect::to("/ergo"), "Du hast deine Daten schon eingegeben. Wenn du sie updaten willst, melde dich bitte bei it@rudernlinz.at"); -// } -// -// // check data -// if data.birthyear < 1900 || data.birthyear > chrono::Utc::now().year() - 5 { -// return Flash::error(Redirect::to("/ergo"), "Bitte überprüfe dein Geburtsjahr..."); -// } -// if data.weight < 20 || data.weight > 200 { -// return Flash::error(Redirect::to("/ergo"), "Bitte überprüfe dein Gewicht..."); -// } -// if &data.sex != "f" && &data.sex != "m" { -// return Flash::error(Redirect::to("/ergo"), "Bitte überprüfe dein Geschlecht..."); -// } -// -// // set data -// user.update_ergo(db, data.birthyear, data.weight, &data.sex) -// .await; -// -// // inform all other `ergo` users -// let ergo = Role::find_by_name(db, "ergo").await.unwrap(); -// Notification::create_for_role( -// db, -// &ergo, -// &format!("{} nimmt heuer an der Ergochallenge teil 💪", user.name), -// "Ergo Challenge", -// None, -// None, -// ) -// .await; -// -// // add to `ergo` group -// user.add_role(db, &ergo).await.unwrap(); -// -// Flash::success( -// Redirect::to("/ergo"), -// "Du hast deine Daten erfolgreich eingegeben. Viel Spaß beim Schwitzen :-)", -// ) -//} +#[post("/set-data", data = "")] +async fn new_user(db: &State, data: Form, user: User) -> Flash { + if user.has_role(db, "ergo").await { + return Flash::error(Redirect::to("/ergo"), "Du hast deine Daten schon eingegeben. Wenn du sie updaten willst, melde dich bitte bei info@rudernlinz.at"); + } + + // check data + if data.birthyear < 1900 || data.birthyear > chrono::Utc::now().year() - 5 { + return Flash::error(Redirect::to("/ergo"), "Bitte überprüfe dein Geburtsjahr..."); + } + if data.weight < 20 || data.weight > 200 { + return Flash::error(Redirect::to("/ergo"), "Bitte überprüfe dein Gewicht..."); + } + if &data.sex != "f" && &data.sex != "m" { + return Flash::error(Redirect::to("/ergo"), "Bitte überprüfe dein Geschlecht..."); + } + + // set data + user.update_ergo(db, data.birthyear, data.weight, &data.sex) + .await; + + // inform all other `ergo` users + let ergo = Role::find_by_name(db, "ergo").await.unwrap(); + Notification::create_for_role( + db, + &ergo, + &format!("{} nimmt heuer an der Ergochallenge teil 💪", user.name), + "Ergo Challenge", + None, + None, + ) + .await; + + // add to `ergo` group + user.add_role(db, &ergo).await.unwrap(); + + Flash::success( + Redirect::to("/ergo"), + "Du hast deine Daten erfolgreich eingegeben. Viel Spaß beim Schwitzen :-)", + ) +} #[derive(FromForm, Debug)] pub struct ErgoToAdd<'a> { -- 2.49.1