@@ -32,30 +32,37 @@ impl BackgroundJob for UpdateDefaultVersion {
32
32
33
33
info ! ( "Updating default version for crate {crate_id}" ) ;
34
34
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
+ }
53
48
}
54
49
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
+ }
59
66
60
67
Ok ( ( ) )
61
68
}
0 commit comments