Skip to content

Commit a4dfd47

Browse files
committed
jobs/update_default_version: Simplify error handling
1 parent 30446fc commit a4dfd47

File tree

1 file changed

+29
-22
lines changed

1 file changed

+29
-22
lines changed

src/worker/jobs/update_default_version.rs

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -32,30 +32,37 @@ impl BackgroundJob for UpdateDefaultVersion {
3232

3333
info!("Updating default version for crate {crate_id}");
3434
let mut conn = ctx.deadpool.get().await?;
35-
let crate_name = update_default_version(crate_id, &mut conn).await.and(
36-
// Get the crate name for OG image generation
37-
crates::table
38-
.filter(crates::id.eq(crate_id))
39-
.select(crates::name)
40-
.first::<String>(&mut conn)
41-
.await,
42-
);
43-
44-
if matches!(
45-
crate_name,
46-
Err(diesel::result::Error::DatabaseError(
47-
diesel::result::DatabaseErrorKind::ForeignKeyViolation,
48-
..,
49-
)) | Err(diesel::result::Error::NotFound)
50-
) {
51-
warn!("Skipping update default version for crate for {crate_id}: no crate found");
52-
return Ok(());
35+
36+
match update_default_version(crate_id, &mut conn).await {
37+
Ok(_) => {
38+
info!("Successfully updated default version for crate {crate_id}");
39+
}
40+
Err(diesel::result::Error::NotFound) => {
41+
warn!("Skipping default version update for crate {crate_id}: crate not found");
42+
return Ok(());
43+
}
44+
Err(err) => {
45+
warn!("Failed to update default version for crate {crate_id}: {err}");
46+
return Err(err.into());
47+
}
5348
}
5449

55-
// Generate OG image after updating default version
56-
let crate_name = crate_name?;
57-
info!("Enqueueing OG image generation for crate {crate_name}");
58-
GenerateOgImage::new(crate_name).enqueue(&mut conn).await?;
50+
// Get the crate name for OG image generation
51+
let crate_name = crates::table
52+
.filter(crates::id.eq(crate_id))
53+
.select(crates::name)
54+
.first::<String>(&mut conn)
55+
.await
56+
.optional()?;
57+
58+
if let Some(crate_name) = crate_name {
59+
// Generate OG image after updating default version
60+
info!("Enqueueing OG image generation for crate {crate_name}");
61+
GenerateOgImage::new(crate_name).enqueue(&mut conn).await?;
62+
} else {
63+
warn!("No crate found for ID {crate_id}, skipping OG image generation");
64+
return Ok(());
65+
}
5966

6067
Ok(())
6168
}

0 commit comments

Comments
 (0)