Can delete a reservation

This commit is contained in:
2024-05-31 22:31:23 +02:00
parent 51f8aaccb6
commit e62f536c03
6 changed files with 152 additions and 5 deletions

View File

@ -1,8 +1,8 @@
use crate::connections::db_connection;
use crate::constants;
use crate::models::{
AccommodationID, AccommodationReservationCalendar, FamilyID,
NewAccommodationReservationCalendar, UserID,
AccommodationID, AccommodationReservationCalendar, AccommodationReservationCalendarID,
FamilyID, NewAccommodationReservationCalendar, UserID,
};
use crate::schema::accommodations_reservations_cals_urls;
use crate::utils::string_utils::rand_str;
@ -49,3 +49,28 @@ pub async fn get_all_of_user(
.get_results(conn)
})
}
/// Get a single calendar by its id
pub async fn get_by_id(
id: AccommodationReservationCalendarID,
) -> anyhow::Result<AccommodationReservationCalendar> {
db_connection::execute(|conn| {
accommodations_reservations_cals_urls::table
.filter(accommodations_reservations_cals_urls::dsl::id.eq(id.0))
.get_result(conn)
})
}
/// Delete a calendar
pub async fn delete(r: AccommodationReservationCalendar) -> anyhow::Result<()> {
// Remove the reservation
db_connection::execute(|conn| {
diesel::delete(
accommodations_reservations_cals_urls::dsl::accommodations_reservations_cals_urls
.filter(accommodations_reservations_cals_urls::dsl::id.eq(r.id().0)),
)
.execute(conn)
})?;
Ok(())
}