Skip to content

Commit 416534c

Browse files
committed
controllers/krate/metadata: Constructing TopVersions from fetched versions
1 parent 6a5d70c commit 416534c

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};
@@ -160,8 +160,16 @@ pub async fn find_crate(
160160
None
161161
};
162162

163-
let top_versions = if include.versions {
164-
Some(krate.top_versions(&mut conn).await?)
163+
let top_versions = if let Some(versions) = versions_publishers_and_audit_actions
164+
.as_ref()
165+
.filter(|_| include.versions)
166+
{
167+
let pairs = versions
168+
.iter()
169+
.filter(|(v, _, _)| !v.yanked)
170+
.cloned()
171+
.map(|(v, _, _)| (v.created_at, v.num));
172+
Some(TopVersions::from_date_version_pairs(pairs))
165173
} else {
166174
None
167175
};

0 commit comments

Comments
 (0)