aboutsummaryrefslogtreecommitdiffstats
path: root/src/db.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/db.rs')
-rw-r--r--src/db.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/db.rs b/src/db.rs
index 4c562ef..6bce5e8 100644
--- a/src/db.rs
+++ b/src/db.rs
@@ -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