diff options
Diffstat (limited to 'src/db.rs')
-rw-r--r-- | src/db.rs | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -55,11 +55,31 @@ impl Connection { self.create_screening(room.id, film.id, start_time, end_time) } + pub fn update_screening( + &self, + screening_id: i32, + room_id: i32, + film_id: i32, + start_time: chrono::DateTime<chrono::Utc>, + end_time: chrono::DateTime<chrono::Utc>) -> QueryResult<usize> + { + let s = models::Screening { id: screening_id, film_id, room_id, start_time, end_time }; + diesel::update(screenings::table) + .filter(screenings::id.eq(screening_id)) + .set(&s) + .execute(&**self) + } + pub fn get_screenings(&self) -> QueryResult<Vec<models::Screening>> { use crate::schema::screenings::dsl::*; screenings.load(&**self) } + pub fn get_screening(&self, screening_id: i32) -> QueryResult<models::Screening> { + use crate::schema::screenings::dsl::*; + screenings.filter(id.eq(screening_id)).get_result(&**self) + } + pub fn get_aggregated_screenings(&self) -> QueryResult<Vec<models::AggregatedScreening>> { use crate::schema::screenings::dsl::*; let s = screenings |