allow ergo entry #1146
| @@ -145,47 +145,47 @@ pub struct UserAdd { | ||||
|     sex: String, | ||||
| } | ||||
|  | ||||
| //#[post("/set-data", data = "<data>")] | ||||
| //async fn new_user(db: &State<SqlitePool>, data: Form<UserAdd>, user: User) -> Flash<Redirect> { | ||||
| //    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 = "<data>")] | ||||
| async fn new_user(db: &State<SqlitePool>, data: Form<UserAdd>, user: User) -> Flash<Redirect> { | ||||
|     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> { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user