don't allow to join as user if already cox
This commit is contained in:
@ -10,7 +10,11 @@ use rocket::{
|
||||
use rocket_dyn_templates::{tera::Context, Template};
|
||||
use sqlx::SqlitePool;
|
||||
|
||||
use crate::model::{planned_event::PlannedEvent, user::User, usertrip::UserTrip, Day};
|
||||
use crate::model::{
|
||||
user::User,
|
||||
usertrip::{UserTrip, UserTripError},
|
||||
Day,
|
||||
};
|
||||
|
||||
mod admin;
|
||||
mod auth;
|
||||
@ -45,14 +49,17 @@ async fn index(db: &State<SqlitePool>, user: User, flash: Option<FlashMessage<'_
|
||||
|
||||
#[get("/join/<trip_details_id>")]
|
||||
async fn join(db: &State<SqlitePool>, trip_details_id: i64, user: User) -> Flash<Redirect> {
|
||||
if !PlannedEvent::rower_can_register(db, trip_details_id).await {
|
||||
return Flash::error(Redirect::to("/"), "Bereits ausgebucht!");
|
||||
}
|
||||
|
||||
if UserTrip::create(db, user.id, trip_details_id).await {
|
||||
Flash::success(Redirect::to("/"), "Erfolgreich angemeldet!")
|
||||
} else {
|
||||
Flash::error(Redirect::to("/"), "Du nimmst bereits teil!")
|
||||
match UserTrip::create(db, user.id, trip_details_id).await {
|
||||
Ok(_) => Flash::success(Redirect::to("/"), "Erfolgreich angemeldet!"),
|
||||
Err(UserTripError::EventAlreadyFull) => {
|
||||
Flash::error(Redirect::to("/"), "Event bereits ausgebucht!")
|
||||
}
|
||||
Err(UserTripError::AlreadyRegistered) => {
|
||||
Flash::error(Redirect::to("/"), "Du nimmst bereits teil!")
|
||||
}
|
||||
Err(UserTripError::AlreadyRegisteredAsCox) => {
|
||||
Flash::error(Redirect::to("/"), "Du hilfst bereits als Steuerperson aus!")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user