diff --git a/src/database/controller/events.rs b/src/database/controller/events.rs index d2b5e99..c536834 100644 --- a/src/database/controller/events.rs +++ b/src/database/controller/events.rs @@ -166,7 +166,7 @@ pub fn get_event(settings: &State, event_id: uuid::Uuid) -> Result, startdate: NaiveDateTime, enddate: NaiveDateTime, groups: Option>) -> Result{ +pub fn get_event_count(settings: &State, startdate: NaiveDateTime, enddate: NaiveDateTime, groups: Option>, states: Option>) -> Result{ use crate::schema::events::dsl::*; use diesel::dsl::count; @@ -174,11 +174,12 @@ pub fn get_event_count(settings: &State, startdate: NaiveDateTime, end let mut query = events.select(count(entity_id)).filter(start.ge(startdate)).filter(end.le(enddate)).into_boxed(); - match groups{ - Some(groups) => { - query = query.filter(related_group.eq(any(groups))) - }, - None => {} + if let Some(groups) = groups { + query = query.filter(related_group.eq(any(groups))); + }; + + if let Some(states) = states{ + query = query.filter(state.eq(any(states))); }; match query.get_result(&connection){ diff --git a/src/modules/api/events/read.rs b/src/modules/api/events/read.rs index b1c8180..5a1c30d 100644 --- a/src/modules/api/events/read.rs +++ b/src/modules/api/events/read.rs @@ -95,11 +95,11 @@ pub fn read_events( None => None, }; - let events = match get_events(settings, start, end, limit, offset, groups.clone(), states){ + let events = match get_events(settings, start, end, limit, offset, groups.clone(), states.clone()){ Ok(events) => events, Err(e) => return Err(translate_diesel(e)), }; - let total_event_count = match get_event_count(settings, start, end, groups){ + let total_event_count = match get_event_count(settings, start, end, groups, states){ Ok(count) => count, Err(e) => return Err(translate_diesel(e)), };