FIX: pagination

This commit is contained in:
Keanu D?lle 2022-04-25 06:26:19 +02:00
parent 961fea97a0
commit e8e20f57ae
2 changed files with 9 additions and 8 deletions

View File

@ -166,7 +166,7 @@ pub fn get_event(settings: &State<Settings>, event_id: uuid::Uuid) -> Result<Eve
} }
} }
pub fn get_event_count(settings: &State<Settings>, startdate: NaiveDateTime, enddate: NaiveDateTime, groups: Option<Vec<uuid::Uuid>>) -> Result<i64, diesel::result::Error>{ pub fn get_event_count(settings: &State<Settings>, startdate: NaiveDateTime, enddate: NaiveDateTime, groups: Option<Vec<uuid::Uuid>>, states: Option<Vec<i16>>) -> Result<i64, diesel::result::Error>{
use crate::schema::events::dsl::*; use crate::schema::events::dsl::*;
use diesel::dsl::count; use diesel::dsl::count;
@ -174,11 +174,12 @@ pub fn get_event_count(settings: &State<Settings>, startdate: NaiveDateTime, end
let mut query = events.select(count(entity_id)).filter(start.ge(startdate)).filter(end.le(enddate)).into_boxed(); let mut query = events.select(count(entity_id)).filter(start.ge(startdate)).filter(end.le(enddate)).into_boxed();
match groups{ if let Some(groups) = groups {
Some(groups) => { query = query.filter(related_group.eq(any(groups)));
query = query.filter(related_group.eq(any(groups))) };
},
None => {} if let Some(states) = states{
query = query.filter(state.eq(any(states)));
}; };
match query.get_result(&connection){ match query.get_result(&connection){

View File

@ -95,11 +95,11 @@ pub fn read_events(
None => None, 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, Ok(events) => events,
Err(e) => return Err(translate_diesel(e)), 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, Ok(count) => count,
Err(e) => return Err(translate_diesel(e)), Err(e) => return Err(translate_diesel(e)),
}; };