summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-12-03 10:53:02 +0100
committerMatthias Beyer <mail@beyermatthias.de>2020-12-03 10:53:04 +0100
commitfdab92ede3505bf5186fd9247692082402c99e91 (patch)
tree298ee3c8bf7f4a504042f727c0f3e5db2e448b1c
parentd73eda3609b9c852aa7417dc7afc63757e89dfb7 (diff)
Also print released flag and job uuid when printing artifacts
This patch includes also a refactoring of the touched bit of code. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--src/commands/db.rs32
1 files changed, 14 insertions, 18 deletions
diff --git a/src/commands/db.rs b/src/commands/db.rs
index cef6462..4c95d4b 100644
--- a/src/commands/db.rs
+++ b/src/commands/db.rs
@@ -133,31 +133,27 @@ fn artifacts(conn_cfg: DbConnectionConfig, matches: &ArgMatches) -> Result<()> {
use crate::schema::artifacts::dsl;
let csv = matches.is_present("csv");
- let hdrs = mk_header(vec!["id", "path"]);
+ let hdrs = mk_header(vec!["id", "path", "released", "job id"]);
let conn = crate::db::establish_connection(conn_cfg)?;
let data = matches.value_of("job_uuid")
.map(uuid::Uuid::parse_str)
.transpose()?
.map(|job_uuid| -> Result<_> {
- Ok({
- dsl::artifacts
- .inner_join(schema::jobs::table)
- .filter(schema::jobs::dsl::uuid.eq(job_uuid))
- .load::<(models::Artifact, models::Job)>(&conn)?
- .into_iter()
- .map(|(artifact, _)| vec![format!("{}", artifact.id), artifact.path])
- .collect::<Vec<_>>()
- })
+ dsl::artifacts
+ .inner_join(schema::jobs::table)
+ .filter(schema::jobs::dsl::uuid.eq(job_uuid))
+ .load::<(models::Artifact, models::Job)>(&conn)
+ .map_err(Error::from)
})
.unwrap_or_else(|| {
- Ok({
- dsl::artifacts
- .load::<models::Artifact>(&conn)?
- .into_iter()
- .map(|artifact| vec![format!("{}", artifact.id), artifact.path])
- .collect::<Vec<_>>()
- })
- })?;
+ dsl::artifacts
+ .inner_join(schema::jobs::table)
+ .load::<(models::Artifact, models::Job)>(&conn)
+ .map_err(Error::from)
+ })?
+ .into_iter()
+ .map(|(artifact, job)| vec![format!("{}", artifact.id), artifact.path, artifact.released.to_string(), job.uuid.to_string()])
+ .collect::<Vec<_>>();
if data.is_empty() {
info!("No artifacts in database");