summaryrefslogtreecommitdiffstats
path: root/src/commands/db.rs
diff options
context:
space:
mode:
authorMatthias Beyer <matthias.beyer@atos.net>2021-06-02 13:03:25 +0200
committerMatthias Beyer <matthias.beyer@atos.net>2021-06-02 13:17:59 +0200
commit1e77f45fc8649b3fbb9e17bd6a5e262617abcc33 (patch)
treec85429100c81c5661194d7764a5b13c78217fb91 /src/commands/db.rs
parent8cd7b44501d2843cfb2d9307ae2b83db15092028 (diff)
Subcommand "db releases" add date filter
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
Diffstat (limited to 'src/commands/db.rs')
-rw-r--r--src/commands/db.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/commands/db.rs b/src/commands/db.rs
index ac3b53f..24450f7 100644
--- a/src/commands/db.rs
+++ b/src/commands/db.rs
@@ -691,7 +691,7 @@ fn releases(conn_cfg: DbConnectionConfig<'_>, config: &Configuration, matches: &
let csv = matches.is_present("csv");
let conn = conn_cfg.establish_connection()?;
let header = crate::commands::util::mk_header(["Package", "Version", "Date", "Path"].to_vec());
- let data = schema::jobs::table
+ let mut query = schema::jobs::table
.inner_join(schema::packages::table)
.inner_join(schema::artifacts::table)
.inner_join(schema::releases::table
@@ -701,6 +701,17 @@ fn releases(conn_cfg: DbConnectionConfig<'_>, config: &Configuration, matches: &
.order_by(schema::packages::dsl::name.asc())
.then_order_by(schema::packages::dsl::version.asc())
.then_order_by(schema::releases::release_date.asc())
+ .into_boxed();
+
+ if let Some(date) = crate::commands::util::get_date_filter("older_than", matches)? {
+ query = query.filter(schema::releases::release_date.lt(date));
+ }
+
+ if let Some(date) = crate::commands::util::get_date_filter("newer_than", matches)? {
+ query = query.filter(schema::releases::release_date.gt(date));
+ }
+
+ let data = query
.select({
let art = schema::artifacts::all_columns;
let pac = schema::packages::all_columns;