summaryrefslogtreecommitdiffstats
path: root/src/db/models/artifact.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/db/models/artifact.rs')
-rw-r--r--src/db/models/artifact.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/db/models/artifact.rs b/src/db/models/artifact.rs
index 1050b30..11e2cec 100644
--- a/src/db/models/artifact.rs
+++ b/src/db/models/artifact.rs
@@ -20,6 +20,7 @@ use diesel::prelude::*;
use diesel::PgConnection;
use crate::db::models::Job;
+use crate::db::models::Release;
use crate::schema::artifacts;
use crate::schema::artifacts::*;
@@ -51,6 +52,18 @@ impl Artifact {
crate::db::models::Release::create(database_connection, &self, release_date)
}
+ pub fn get_release(&self, database_connection: &PgConnection) -> Result<Option<Release>> {
+ use crate::schema;
+
+ schema::artifacts::table
+ .inner_join(schema::releases::table)
+ .filter(schema::releases::artifact_id.eq(self.id))
+ .select(schema::releases::all_columns)
+ .first::<Release>(database_connection)
+ .optional()
+ .map_err(Error::from)
+ }
+
pub fn create(
database_connection: &PgConnection,
art_path: &ArtifactPath,