From e8e20f57ae9f4227717053a7e7a1d5dbc30200a1 Mon Sep 17 00:00:00 2001 From: Keanu D?lle Date: Mon, 25 Apr 2022 06:26:19 +0200 Subject: [PATCH] FIX: pagination --- src/database/controller/events.rs | 13 +++++++------ src/modules/api/events/read.rs | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) 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)), };