diff --git a/README.md b/README.md index fc42db6..b067678 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ - [] max_people = 0 -> Rot hervorheben, dass Ausfahrt abgesagt wurde? - [] my trips for cox - [] remove key from src/rest/admin/rss.rs (line 8); at least before putting code somewhere public -- [] add `trip_type` (id, name, desc, question) with a FK to `trip_details` +- [] add `trip_type` (id, name, desc, question, icon) with a FK to `trip_details` - [] add `always_show` to `planned_trips` (e.g. for wanderfahrten) - [] exactly same time -> deny registration - [] `planned_events` -> ICS feed to be [integrated](https://icscalendar.com/shortcode-overview/) in homepage calendar diff --git a/src/model/trip.rs b/src/model/trip.rs index 137b45e..8cafea4 100644 --- a/src/model/trip.rs +++ b/src/model/trip.rs @@ -5,7 +5,7 @@ use sqlx::SqlitePool; use super::{ planned_event::{PlannedEvent, Registration}, tripdetails::TripDetails, - user::{CoxUser, User}, + user::CoxUser, }; #[derive(Serialize, Clone, Debug)] @@ -184,9 +184,13 @@ FROM user_trip WHERE trip_details_id = (SELECT trip_details_id FROM trip WHERE i .unwrap(); //TODO: handle case where cox is not registered } - pub(crate) async fn delete(&self, db: &SqlitePool, user: &User) -> Result<(), TripDeleteError> { + pub(crate) async fn delete( + &self, + db: &SqlitePool, + user: &CoxUser, + ) -> Result<(), TripDeleteError> { let registered_rower = self.get_all_rower(db).await; - if registered_rower.is_empty() { + if !registered_rower.is_empty() { return Err(TripDeleteError::SomebodyAlreadyRegistered); } @@ -357,5 +361,20 @@ mod test { assert!(Trip::find_by_id(&pool, 2).await.is_none()); } - //TODO: create tests for delete() function + #[sqlx::test] + fn test_succ_delete() { + let pool = testdb!(); + + let cox: CoxUser = User::find_by_name(&pool, "cox".into()) + .await + .unwrap() + .try_into() + .unwrap(); + + let trip = Trip::find_by_id(&pool, 1).await.unwrap(); + + trip.delete(&pool, &cox).await.unwrap(); + + assert!(Trip::find_by_id(&pool, 1).await.is_none()); + } } diff --git a/src/model/usertrip.rs b/src/model/usertrip.rs index d575b27..f786f91 100644 --- a/src/model/usertrip.rs +++ b/src/model/usertrip.rs @@ -87,7 +87,7 @@ pub enum UserTripError { #[cfg(test)] mod test { - use crate::testdb; + //use crate::testdb; //use super::User; //use sqlx::SqlitePool;