diff --git a/src/model/event.rs b/src/model/event.rs index c0c8349..cc7664c 100644 --- a/src/model/event.rs +++ b/src/model/event.rs @@ -282,16 +282,17 @@ WHERE trip_details.id=? let rower = Registration::all_rower(db, self.trip_details_id).await; for user in rower { if let Some(user) = User::find_by_name(db, &user.name).await { - let notes = match update.notes { - Some(n) if !n.is_empty() => n, - _ => ".", + let notes = if let Some(notes) = update.notes { + format!("Grund der Absage: {notes}") + } else { + String::from("") }; Notification::create( db, &user, &format!( - "Die Ausfahrt {} am {} um {} wurde abgesagt{}", + "Die Ausfahrt {} am {} um {} wurde abgesagt. {}", self.name, self.day, self.planned_starting_time, notes ), "Absage Ausfahrt", diff --git a/src/model/notification.rs b/src/model/notification.rs index 9bb242e..d3bcd81 100644 --- a/src/model/notification.rs +++ b/src/model/notification.rs @@ -135,12 +135,22 @@ ORDER BY read_at DESC, created_at DESC; .await .unwrap(); + println!("in mark_read"); + if let Some(action) = self.action_after_reading.as_ref() { + println!("{action:#?}"); // User read notification about cancelled trip/event let re = Regex::new(r"^remove_user_trip_with_trip_details_id:(\d+)$").unwrap(); if let Some(caps) = re.captures(action) { + println!("in 2nd if"); if let Some(matched) = caps.get(1) { + println!("in 3rd if"); if let Ok(number) = matched.as_str().parse::() { + println!("number: {number}"); + println!( + "DELETE FROM user_trip WHERE user_id = {} AND trip_details_id = {}", + self.user_id, number + ); let _ = sqlx::query!( "DELETE FROM user_trip WHERE user_id = ? AND trip_details_id = ?", self.user_id, diff --git a/staging-diff.sql b/staging-diff.sql index 4303b65..6fb21fc 100644 --- a/staging-diff.sql +++ b/staging-diff.sql @@ -1,5 +1,3 @@ -update role set name='manage_events' where id=19; - -- test user INSERT INTO user(name) VALUES('Marie'); INSERT INTO "user_role" (user_id, role_id) VALUES((SELECT id from user where name = 'Marie'),(SELECT id FROM role where name = 'Donau Linz'));