@@ -49,13 +49,15 @@ pub async fn list(
4949 DateTime < Utc > ,
5050 Option < i64 > ,
5151 Option < i64 > ,
52+ i32 ,
5253 i64 ,
5354 ) > = CrateOwner :: by_owner_kind ( OwnerKind :: User )
5455 . inner_join ( crates:: table)
5556 . left_join ( crate_downloads:: table. on ( crates:: id. eq ( crate_downloads:: crate_id) ) )
5657 . left_join (
5758 recent_crate_downloads:: table. on ( crates:: id. eq ( recent_crate_downloads:: crate_id) ) ,
5859 )
60+ . inner_join ( default_versions:: table. on ( crates:: id. eq ( default_versions:: crate_id) ) )
5961 . filter ( crate_owners:: owner_id. eq ( user. id ) )
6062 . select ( (
6163 crates:: id,
@@ -64,6 +66,7 @@ pub async fn list(
6466 crates:: updated_at,
6567 crate_downloads:: downloads. nullable ( ) ,
6668 recent_crate_downloads:: downloads. nullable ( ) ,
69+ default_versions:: version_id,
6770 rev_deps_subquery ( ) ,
6871 ) )
6972 . order ( crates:: name. asc ( ) )
@@ -94,10 +97,12 @@ pub async fn list(
9497 updated_at,
9598 downloads,
9699 recent_crate_downloads,
100+ default_version,
97101 num_rev_deps,
98102 ) | {
99103 let versions = versions_by_crate_id. get ( & crate_id) ;
100- let last_version = versions. and_then ( |v| v. last ( ) ) ;
104+ let default_version =
105+ versions. and_then ( |versions| versions. iter ( ) . find ( |v| v. id == default_version) ) ;
101106 AdminCrateInfo {
102107 name,
103108 description,
@@ -106,8 +111,9 @@ pub async fn list(
106111 + recent_crate_downloads. unwrap_or_default ( ) ,
107112 num_rev_deps,
108113 num_versions : versions. map ( |v| v. len ( ) ) . unwrap_or ( 0 ) ,
109- crate_size : last_version. map ( |v| v. crate_size ) . unwrap_or ( 0 ) ,
110- bin_names : last_version
114+ default_version_num : default_version. map ( |v| v. num . clone ( ) ) . unwrap_or_default ( ) ,
115+ crate_size : default_version. map ( |v| v. crate_size ) . unwrap_or ( 0 ) ,
116+ bin_names : default_version
111117 . map ( |v| v. bin_names . clone ( ) )
112118 . unwrap_or_default ( ) ,
113119 }
@@ -134,6 +140,7 @@ pub struct AdminCrateInfo {
134140 pub downloads : i64 ,
135141 pub num_rev_deps : i64 ,
136142 pub num_versions : usize ,
143+ pub default_version_num : String ,
137144 pub crate_size : i32 ,
138145 pub bin_names : Option < Vec < Option < String > > > ,
139146}
0 commit comments