@@ -49,13 +49,15 @@ pub async fn list(
49
49
DateTime < Utc > ,
50
50
Option < i64 > ,
51
51
Option < i64 > ,
52
+ i32 ,
52
53
i64 ,
53
54
) > = CrateOwner :: by_owner_kind ( OwnerKind :: User )
54
55
. inner_join ( crates:: table)
55
56
. left_join ( crate_downloads:: table. on ( crates:: id. eq ( crate_downloads:: crate_id) ) )
56
57
. left_join (
57
58
recent_crate_downloads:: table. on ( crates:: id. eq ( recent_crate_downloads:: crate_id) ) ,
58
59
)
60
+ . inner_join ( default_versions:: table. on ( crates:: id. eq ( default_versions:: crate_id) ) )
59
61
. filter ( crate_owners:: owner_id. eq ( user. id ) )
60
62
. select ( (
61
63
crates:: id,
@@ -64,6 +66,7 @@ pub async fn list(
64
66
crates:: updated_at,
65
67
crate_downloads:: downloads. nullable ( ) ,
66
68
recent_crate_downloads:: downloads. nullable ( ) ,
69
+ default_versions:: version_id,
67
70
rev_deps_subquery ( ) ,
68
71
) )
69
72
. order ( crates:: name. asc ( ) )
@@ -94,10 +97,12 @@ pub async fn list(
94
97
updated_at,
95
98
downloads,
96
99
recent_crate_downloads,
100
+ default_version,
97
101
num_rev_deps,
98
102
) | {
99
103
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) ) ;
101
106
AdminCrateInfo {
102
107
name,
103
108
description,
@@ -106,8 +111,9 @@ pub async fn list(
106
111
+ recent_crate_downloads. unwrap_or_default ( ) ,
107
112
num_rev_deps,
108
113
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
111
117
. map ( |v| v. bin_names . clone ( ) )
112
118
. unwrap_or_default ( ) ,
113
119
}
@@ -134,6 +140,7 @@ pub struct AdminCrateInfo {
134
140
pub downloads : i64 ,
135
141
pub num_rev_deps : i64 ,
136
142
pub num_versions : usize ,
143
+ pub default_version_num : String ,
137
144
pub crate_size : i32 ,
138
145
pub bin_names : Option < Vec < Option < String > > > ,
139
146
}
0 commit comments