Skip to content

Commit 920bc1d

Browse files
committed
views: Implement from() method for EncodableVersion
1 parent 3eb1ce6 commit 920bc1d

File tree

4 files changed

+18
-7
lines changed

4 files changed

+18
-7
lines changed

src/controllers/krate/metadata.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ pub fn show(req: &mut dyn RequestExt) -> EndpointResult {
176176
),
177177
versions: versions_publishers_and_audit_actions
178178
.into_iter()
179-
.map(|(v, pb, aas)| v.encodable(&krate.name, pb, aas))
179+
.map(|(v, pb, aas)| EncodableVersion::from(v, &krate.name, pb, aas))
180180
.collect(),
181181
keywords: kws.into_iter().map(Keyword::into).collect(),
182182
categories: cats.into_iter().map(Category::into).collect(),
@@ -226,7 +226,7 @@ pub fn versions(req: &mut dyn RequestExt) -> EndpointResult {
226226
let versions = versions_and_publishers
227227
.into_iter()
228228
.zip(VersionOwnerAction::for_versions(&conn, &versions)?.into_iter())
229-
.map(|((v, pb), aas)| v.encodable(crate_name, pb, aas))
229+
.map(|((v, pb), aas)| EncodableVersion::from(v, crate_name, pb, aas))
230230
.collect();
231231

232232
#[derive(Serialize)]
@@ -271,7 +271,7 @@ pub fn reverse_dependencies(req: &mut dyn RequestExt) -> EndpointResult {
271271
.into_iter()
272272
.zip(VersionOwnerAction::for_versions(&conn, &versions)?.into_iter())
273273
.map(|((version, krate_name, published_by), actions)| {
274-
version.encodable(&krate_name, published_by, actions)
274+
EncodableVersion::from(version, &krate_name, published_by, actions)
275275
})
276276
.collect();
277277

src/controllers/version/deprecated.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ pub fn index(req: &mut dyn RequestExt) -> EndpointResult {
4141
.into_iter()
4242
.zip(VersionOwnerAction::for_versions(&conn, &versions)?.into_iter())
4343
.map(|((version, crate_name, published_by), actions)| {
44-
version.encodable(&crate_name, published_by, actions)
44+
EncodableVersion::from(version, &crate_name, published_by, actions)
4545
})
4646
.collect();
4747

@@ -76,6 +76,6 @@ pub fn show_by_id(req: &mut dyn RequestExt) -> EndpointResult {
7676
version: EncodableVersion,
7777
}
7878
Ok(req.json(&R {
79-
version: version.encodable(&krate.name, published_by, audit_actions),
79+
version: EncodableVersion::from(version, &krate.name, published_by, audit_actions),
8080
}))
8181
}

src/controllers/version/metadata.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,6 @@ pub fn show(req: &mut dyn RequestExt) -> EndpointResult {
8181
version: EncodableVersion,
8282
}
8383
Ok(req.json(&R {
84-
version: version.encodable(&krate.name, published_by, actions),
84+
version: EncodableVersion::from(version, &krate.name, published_by, actions),
8585
}))
8686
}

src/views.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use std::collections::HashMap;
55
use crate::github;
66
use crate::models::{
77
Badge, Category, CrateOwnerInvitation, CreatedApiToken, Dependency, DependencyKind, Keyword,
8-
Owner, ReverseDependency, Team, User, VersionDownload,
8+
Owner, ReverseDependency, Team, User, Version, VersionDownload, VersionOwnerAction,
99
};
1010
use crate::util::rfc3339;
1111

@@ -446,6 +446,17 @@ pub struct EncodableVersion {
446446
pub audit_actions: Vec<EncodableAuditAction>,
447447
}
448448

449+
impl EncodableVersion {
450+
pub fn from(
451+
version: Version,
452+
crate_name: &str,
453+
published_by: Option<User>,
454+
audit_actions: Vec<(VersionOwnerAction, User)>,
455+
) -> Self {
456+
version.encodable(crate_name, published_by, audit_actions)
457+
}
458+
}
459+
449460
#[derive(Serialize, Deserialize, Debug)]
450461
pub struct EncodableVersionLinks {
451462
pub dependencies: String,

0 commit comments

Comments
 (0)