Can create calendars
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-05-31 21:41:58 +02:00
parent e86c80310d
commit b34959df33
9 changed files with 140 additions and 14 deletions

View File

@ -0,0 +1,35 @@
use crate::connections::db_connection;
use crate::constants;
use crate::models::{
AccommodationID, AccommodationReservationCalendar, FamilyID,
NewAccommodationReservationCalendar, UserID,
};
use crate::schema::accommodations_reservations_cals_urls;
use crate::utils::string_utils::rand_str;
use crate::utils::time_utils::time;
use diesel::prelude::*;
/// Create a new reservation calendar entry
pub async fn create(
user_id: UserID,
family_id: FamilyID,
accommodation_id: Option<AccommodationID>,
name: &str,
) -> anyhow::Result<AccommodationReservationCalendar> {
db_connection::execute(|conn| {
let res: AccommodationReservationCalendar =
diesel::insert_into(accommodations_reservations_cals_urls::table)
.values(&NewAccommodationReservationCalendar {
family_id: family_id.0,
accommodation_id: accommodation_id.map(|i| i.0),
user_id: user_id.0,
name: name.to_string(),
token: rand_str(constants::ACCOMMODATIONS_RESERVATIONS_CALENDARS_TOKENS_LEN),
time_create: time() as i64,
time_used: time() as i64,
})
.get_result(conn)?;
Ok(res)
})
}

View File

@ -1,6 +1,7 @@
//! # Backend services
pub mod accommodations_list_service;
pub mod accommodations_reservations_calendars_service;
pub mod accommodations_reservations_service;
pub mod couples_service;
pub mod families_service;