Skip to content

Commit 622eef5

Browse files
committed
controllers/krate/metadata: Constructing TopVersions from fetched versions
1 parent 76f49fe commit 622eef5

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/controllers/krate/metadata.rs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
use crate::app::AppState;
88
use crate::controllers::krate::CratePath;
99
use crate::models::{
10-
Category, Crate, CrateCategory, CrateKeyword, Keyword, RecentCrateDownloads, User, Version,
11-
VersionOwnerAction,
10+
Category, Crate, CrateCategory, CrateKeyword, Keyword, RecentCrateDownloads, TopVersions, User,
11+
Version, VersionOwnerAction,
1212
};
1313
use crate::schema::*;
1414
use crate::util::errors::{bad_request, crate_not_found, AppResult, BoxedAppError};
@@ -146,8 +146,16 @@ pub async fn find_crate(
146146
None
147147
};
148148

149-
let top_versions = if include.versions {
150-
Some(krate.top_versions(&mut conn).await?)
149+
let top_versions = if let Some(versions) = versions_publishers_and_audit_actions
150+
.as_ref()
151+
.filter(|_| include.versions)
152+
{
153+
let pairs = versions
154+
.iter()
155+
.filter(|(v, _, _)| !v.yanked)
156+
.cloned()
157+
.map(|(v, _, _)| (v.created_at, v.num));
158+
Some(TopVersions::from_date_version_pairs(pairs))
151159
} else {
152160
None
153161
};

0 commit comments

Comments
 (0)