diff --git a/src/controllers/version/metadata.rs b/src/controllers/version/metadata.rs index 19d3b975fea..86a040a001c 100644 --- a/src/controllers/version/metadata.rs +++ b/src/controllers/version/metadata.rs @@ -104,7 +104,7 @@ pub async fn show( spawn_blocking(move || { let conn: &mut AsyncConnectionWrapper<_> = &mut conn.into(); - let published_by = version.published_by(conn); + let published_by = version.published_by(conn)?; let actions = VersionOwnerAction::by_version(conn, &version)?; let version = EncodableVersion::from(version, &krate.name, published_by, actions); @@ -142,7 +142,7 @@ pub async fn update( update_request.version.yank_message, )?; - let published_by = version.published_by(conn); + let published_by = version.published_by(conn)?; let actions = VersionOwnerAction::by_version(conn, &version)?; let updated_version = EncodableVersion::from(version, &krate.name, published_by, actions); Ok(Json(json!({ "version": updated_version }))) diff --git a/src/models/version.rs b/src/models/version.rs index be7dd438f4b..fb2b5e338df 100644 --- a/src/models/version.rs +++ b/src/models/version.rs @@ -49,12 +49,12 @@ impl Version { /// Gets the User who ran `cargo publish` for this version, if recorded. /// Not for use when you have a group of versions you need the publishers for. - pub fn published_by(&self, conn: &mut impl Conn) -> Option { + pub fn published_by(&self, conn: &mut impl Conn) -> QueryResult> { use diesel::RunQueryDsl; match self.published_by { - Some(pb) => users::table.find(pb).first(conn).ok(), - None => None, + Some(pb) => users::table.find(pb).first(conn).optional(), + None => Ok(None), } }