diff --git a/db.sqlite b/db.sqlite index 18cdbb4..52dfd8e 100644 Binary files a/db.sqlite and b/db.sqlite differ diff --git a/src/station/routes.rs b/src/station/routes.rs index 9f2614c..087ac66 100644 --- a/src/station/routes.rs +++ b/src/station/routes.rs @@ -21,15 +21,25 @@ async fn create( session: Session, Form(form): Form, ) -> impl IntoResponse { - Station::create(&db, &form.name).await.unwrap(); - + match Station::create(&db, &form.name).await{ +Ok(_) => session .insert( "succ", &format!("Station '{}' erfolgreich erstellt!", form.name), ) .await - .unwrap(); + .unwrap(), + Err(e) => + session + .insert( + "err", + &format!("Station '{}' konnte _NICHT_ erstellt werden, da es bereits eine Station mit diesem Namen gibt ({e})!", form.name), + ) + .await + .unwrap(), + + } Redirect::to("/station") } @@ -70,14 +80,23 @@ async fn index(State(db): State>, session: Session) -> Markup { let stations = Station::all(&db).await; // Get and clear flash message - let flash_message = session.get::("succ").await.unwrap_or(None); - if flash_message.is_some() { + let succ_msg = session.get::("succ").await.unwrap_or(None); + if succ_msg.is_some() { session.remove::("succ").await.unwrap(); } + let err_msg = session.get::("err").await.unwrap_or(None); + if err_msg.is_some() { + session.remove::("err").await.unwrap(); + } html! { h1 { "Stationen" } - @if let Some(message) = flash_message { + @if let Some(message) = succ_msg { + div class="alert alert-success" { + (message) + } + } + @if let Some(message) = err_msg { div class="alert alert-success" { (message) }