feat: use filter for export
This commit is contained in:
parent
d1e1ccd906
commit
d8eb9ecbf3
@ -15,7 +15,7 @@ use crate::{
|
|||||||
struct ExportQuery {
|
struct ExportQuery {
|
||||||
start: NaiveDate,
|
start: NaiveDate,
|
||||||
end: NaiveDate,
|
end: NaiveDate,
|
||||||
area: Option<i32>,
|
area: i32,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(PartialEq)]
|
#[derive(PartialEq)]
|
||||||
@ -131,13 +131,16 @@ pub async fn get(
|
|||||||
return Err(ApplicationError::Unauthorized);
|
return Err(ApplicationError::Unauthorized);
|
||||||
}
|
}
|
||||||
|
|
||||||
let rows_to_export = ExportEventRow::read(pool.get_ref()).await?;
|
let rows_to_export = ExportEventRow::read_all_for_timerange_and_area(
|
||||||
|
pool.get_ref(),
|
||||||
|
(query.start, query.end),
|
||||||
|
query.area,
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
let entries = read(rows_to_export);
|
let entries = read(rows_to_export);
|
||||||
|
|
||||||
let mut workbook = Workbook::new();
|
let mut workbook = Workbook::new();
|
||||||
let worksheet = workbook.add_worksheet();
|
let worksheet = workbook.add_worksheet();
|
||||||
// let time_format = Format::new();
|
|
||||||
// time_format.set_num_format(num_format)
|
|
||||||
|
|
||||||
const HEADER: [&str; 10] = [
|
const HEADER: [&str; 10] = [
|
||||||
"Datum",
|
"Datum",
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use chrono::NaiveDateTime;
|
use chrono::{NaiveDate, NaiveDateTime};
|
||||||
use sqlx::{
|
use sqlx::{
|
||||||
postgres::{PgHasArrayType, PgTypeInfo},
|
postgres::{PgHasArrayType, PgTypeInfo},
|
||||||
query, PgPool,
|
query, PgPool,
|
||||||
@ -34,7 +34,11 @@ impl PgHasArrayType for SimpleAssignment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl ExportEventRow {
|
impl ExportEventRow {
|
||||||
pub async fn read(pool: &PgPool) -> Result<Vec<ExportEventRow>, ApplicationError> {
|
pub async fn read_all_for_timerange_and_area(
|
||||||
|
pool: &PgPool,
|
||||||
|
time: (NaiveDate, NaiveDate),
|
||||||
|
area: i32,
|
||||||
|
) -> Result<Vec<ExportEventRow>, ApplicationError> {
|
||||||
let rows = query!(
|
let rows = query!(
|
||||||
"select
|
"select
|
||||||
event.starttimestamp,
|
event.starttimestamp,
|
||||||
@ -68,7 +72,11 @@ from
|
|||||||
event
|
event
|
||||||
join location on
|
join location on
|
||||||
event.locationId = location.id
|
event.locationId = location.id
|
||||||
order by event.starttimestamp"
|
where event.starttimestamp::date >= $1 and event.starttimestamp::date <= $2 and location.areaId = $3
|
||||||
|
order by event.starttimestamp",
|
||||||
|
time.0,
|
||||||
|
time.1,
|
||||||
|
area
|
||||||
)
|
)
|
||||||
.fetch_all(pool)
|
.fetch_all(pool)
|
||||||
.await?;
|
.await?;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user