diff options
-rw-r--r-- | src/db/models/package.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/db/models/package.rs b/src/db/models/package.rs index 6a5b646..88839b6 100644 --- a/src/db/models/package.rs +++ b/src/db/models/package.rs @@ -57,4 +57,16 @@ impl Package { .first::<Package>(database_connection) .map_err(Error::from) } + + pub fn fetch_for_job(database_connection: &PgConnection, j: &crate::db::models::Job) -> Result<Option<Package>> { + Self::fetch_by_id(database_connection, j.package_id) + } + + pub fn fetch_by_id(database_connection: &PgConnection, pid: i32) -> Result<Option<Package>> { + match dsl::packages.filter(id.eq(pid)).first::<Package>(database_connection) { + Err(diesel::result::Error::NotFound) => Ok(None), + Err(e) => Err(Error::from(e)), + Ok(p) => Ok(Some(p)), + } + } } |