clean code with clippy
This commit is contained in:
		@@ -34,6 +34,16 @@ pub struct TripWithUserAndType {
 | 
			
		||||
    trip_type: Option<TripType>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub struct TripUpdate<'a> {
 | 
			
		||||
    pub cox: &'a CoxUser,
 | 
			
		||||
    pub trip: &'a Trip,
 | 
			
		||||
    pub max_people: i32,
 | 
			
		||||
    pub notes: Option<&'a str>,
 | 
			
		||||
    pub trip_type: Option<i64>, //TODO: Move to `TripType`
 | 
			
		||||
    pub always_show: bool,
 | 
			
		||||
    pub is_locked: bool,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl TripWithUserAndType {
 | 
			
		||||
    pub async fn from(db: &SqlitePool, trip: Trip) -> Self {
 | 
			
		||||
        let mut trip_type = None;
 | 
			
		||||
@@ -177,40 +187,36 @@ WHERE day=?
 | 
			
		||||
    /// Cox decides to update own trip.
 | 
			
		||||
    pub async fn update_own(
 | 
			
		||||
        db: &SqlitePool,
 | 
			
		||||
        cox: &CoxUser,
 | 
			
		||||
        trip: &Trip,
 | 
			
		||||
        max_people: i32,
 | 
			
		||||
        notes: Option<&str>,
 | 
			
		||||
        trip_type: Option<i64>, //TODO: Move to `TripType`
 | 
			
		||||
        always_show: bool,
 | 
			
		||||
        is_locked: bool,
 | 
			
		||||
        update: &TripUpdate<'_>,
 | 
			
		||||
    ) -> Result<(), TripUpdateError> {
 | 
			
		||||
        if !trip.is_trip_from_user(cox.id) {
 | 
			
		||||
        if !update.trip.is_trip_from_user(update.cox.id) {
 | 
			
		||||
            return Err(TripUpdateError::NotYourTrip);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        let Some(trip_details_id) = trip.trip_details_id else {
 | 
			
		||||
        let Some(trip_details_id) = update.trip.trip_details_id else {
 | 
			
		||||
            return Err(TripUpdateError::TripDetailsDoesNotExist); //TODO: Remove?
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        sqlx::query!(
 | 
			
		||||
            "UPDATE trip_details SET max_people = ?, notes = ?, trip_type_id = ?, always_show = ?, is_locked = ? WHERE id = ?",
 | 
			
		||||
            max_people,
 | 
			
		||||
            notes,
 | 
			
		||||
            trip_type,
 | 
			
		||||
            always_show,
 | 
			
		||||
            is_locked,
 | 
			
		||||
            update.max_people,
 | 
			
		||||
            update.notes,
 | 
			
		||||
            update.trip_type,
 | 
			
		||||
            update.always_show,
 | 
			
		||||
            update.is_locked,
 | 
			
		||||
            trip_details_id
 | 
			
		||||
        )
 | 
			
		||||
        .execute(db)
 | 
			
		||||
        .await
 | 
			
		||||
        .unwrap(); //Okay, as trip_details can only be created with proper DB backing
 | 
			
		||||
 | 
			
		||||
        if max_people == 0 {
 | 
			
		||||
            let rowers = TripWithUserAndType::from(db, trip.clone()).await.rower;
 | 
			
		||||
        if update.max_people == 0 {
 | 
			
		||||
            let rowers = TripWithUserAndType::from(db, update.trip.clone())
 | 
			
		||||
                .await
 | 
			
		||||
                .rower;
 | 
			
		||||
            for user in rowers {
 | 
			
		||||
                if let Some(user) = User::find_by_name(db, &user.name).await {
 | 
			
		||||
                    let notes = match notes {
 | 
			
		||||
                    let notes = match update.notes {
 | 
			
		||||
                        Some(n) if !n.is_empty() => n,
 | 
			
		||||
                        _ => ".",
 | 
			
		||||
                    };
 | 
			
		||||
@@ -220,7 +226,10 @@ WHERE day=?
 | 
			
		||||
                        &user,
 | 
			
		||||
                        &format!(
 | 
			
		||||
                            "Die Ausfahrt von {} am {} um {} wurde abgesagt{}",
 | 
			
		||||
                            cox.user.name, trip.day, trip.planned_starting_time, notes
 | 
			
		||||
                            update.cox.user.name,
 | 
			
		||||
                            update.trip.day,
 | 
			
		||||
                            update.trip.planned_starting_time,
 | 
			
		||||
                            notes
 | 
			
		||||
                        ),
 | 
			
		||||
                        "Absage Ausfahrt",
 | 
			
		||||
                        None,
 | 
			
		||||
@@ -349,7 +358,7 @@ mod test {
 | 
			
		||||
    use crate::{
 | 
			
		||||
        model::{
 | 
			
		||||
            planned_event::PlannedEvent,
 | 
			
		||||
            trip::TripDeleteError,
 | 
			
		||||
            trip::{self, TripDeleteError},
 | 
			
		||||
            tripdetails::TripDetails,
 | 
			
		||||
            user::{CoxUser, User},
 | 
			
		||||
            usertrip::UserTrip,
 | 
			
		||||
@@ -434,11 +443,17 @@ mod test {
 | 
			
		||||
 | 
			
		||||
        let trip = Trip::find_by_id(&pool, 1).await.unwrap();
 | 
			
		||||
 | 
			
		||||
        assert!(
 | 
			
		||||
            Trip::update_own(&pool, &cox, &trip, 10, None, None, false, false)
 | 
			
		||||
                .await
 | 
			
		||||
                .is_ok()
 | 
			
		||||
        );
 | 
			
		||||
        let update = trip::TripUpdate {
 | 
			
		||||
            cox: &cox,
 | 
			
		||||
            trip: &trip,
 | 
			
		||||
            max_people: 10,
 | 
			
		||||
            notes: None,
 | 
			
		||||
            trip_type: None,
 | 
			
		||||
            always_show: false,
 | 
			
		||||
            is_locked: false,
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        assert!(Trip::update_own(&pool, &update).await.is_ok());
 | 
			
		||||
 | 
			
		||||
        let trip = Trip::find_by_id(&pool, 1).await.unwrap();
 | 
			
		||||
        assert_eq!(trip.max_people, 10);
 | 
			
		||||
@@ -457,11 +472,16 @@ mod test {
 | 
			
		||||
 | 
			
		||||
        let trip = Trip::find_by_id(&pool, 1).await.unwrap();
 | 
			
		||||
 | 
			
		||||
        assert!(
 | 
			
		||||
            Trip::update_own(&pool, &cox, &trip, 10, None, Some(1), false, false)
 | 
			
		||||
                .await
 | 
			
		||||
                .is_ok()
 | 
			
		||||
        );
 | 
			
		||||
        let update = trip::TripUpdate {
 | 
			
		||||
            cox: &cox,
 | 
			
		||||
            trip: &trip,
 | 
			
		||||
            max_people: 10,
 | 
			
		||||
            notes: None,
 | 
			
		||||
            trip_type: Some(1),
 | 
			
		||||
            always_show: false,
 | 
			
		||||
            is_locked: false,
 | 
			
		||||
        };
 | 
			
		||||
        assert!(Trip::update_own(&pool, &update).await.is_ok());
 | 
			
		||||
 | 
			
		||||
        let trip = Trip::find_by_id(&pool, 1).await.unwrap();
 | 
			
		||||
        assert_eq!(trip.max_people, 10);
 | 
			
		||||
@@ -481,11 +501,16 @@ mod test {
 | 
			
		||||
 | 
			
		||||
        let trip = Trip::find_by_id(&pool, 1).await.unwrap();
 | 
			
		||||
 | 
			
		||||
        assert!(
 | 
			
		||||
            Trip::update_own(&pool, &cox, &trip, 10, None, None, false, false)
 | 
			
		||||
                .await
 | 
			
		||||
                .is_err()
 | 
			
		||||
        );
 | 
			
		||||
        let update = trip::TripUpdate {
 | 
			
		||||
            cox: &cox,
 | 
			
		||||
            trip: &trip,
 | 
			
		||||
            max_people: 10,
 | 
			
		||||
            notes: None,
 | 
			
		||||
            trip_type: None,
 | 
			
		||||
            always_show: false,
 | 
			
		||||
            is_locked: false,
 | 
			
		||||
        };
 | 
			
		||||
        assert!(Trip::update_own(&pool, &update).await.is_err());
 | 
			
		||||
        assert_eq!(trip.max_people, 1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user