Skip to content

Commit c39e7d6

Browse files
committed
controllers::version::metadata: Use json! macro to simplify JSON serialization code
1 parent 9fd5d56 commit c39e7d6

File tree

1 file changed

+10
-27
lines changed

1 file changed

+10
-27
lines changed

src/controllers/version/metadata.rs

Lines changed: 10 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use crate::controllers::frontend_prelude::*;
88

99
use crate::models::VersionOwnerAction;
10-
use crate::views::{EncodableDependency, EncodablePublicUser, EncodableVersion};
10+
use crate::views::{EncodableDependency, EncodableVersion};
1111

1212
use super::{extract_crate_name_and_semver, version_and_crate};
1313

@@ -26,32 +26,20 @@ pub fn dependencies(req: &mut dyn RequestExt) -> EndpointResult {
2626
let deps = deps
2727
.into_iter()
2828
.map(|(dep, crate_name)| EncodableDependency::from_dep(dep, &crate_name))
29-
.collect();
29+
.collect::<Vec<_>>();
3030

31-
#[derive(Serialize)]
32-
struct R {
33-
dependencies: Vec<EncodableDependency>,
34-
}
35-
Ok(req.json(&R { dependencies: deps }))
31+
Ok(req.json(&json!({ "dependencies": deps })))
3632
}
3733

3834
/// Handles the `GET /crates/:crate_id/:version/authors` route.
3935
pub fn authors(req: &mut dyn RequestExt) -> EndpointResult {
4036
// Currently we return the empty list.
4137
// Because the API is not used anymore after RFC https://github.com/rust-lang/rfcs/pull/3052.
42-
#[derive(Serialize)]
43-
struct R {
44-
users: Vec<EncodablePublicUser>,
45-
meta: Meta,
46-
}
47-
#[derive(Serialize)]
48-
struct Meta {
49-
names: Vec<String>,
50-
}
51-
Ok(req.json(&R {
52-
users: vec![],
53-
meta: Meta { names: vec![] },
54-
}))
38+
39+
Ok(req.json(&json!({
40+
"users": [],
41+
"meta": { "names": [] },
42+
})))
5543
}
5644

5745
/// Handles the `GET /crates/:crate/:version` route.
@@ -65,11 +53,6 @@ pub fn show(req: &mut dyn RequestExt) -> EndpointResult {
6553
let published_by = version.published_by(&conn);
6654
let actions = VersionOwnerAction::by_version(&conn, &version)?;
6755

68-
#[derive(Serialize)]
69-
struct R {
70-
version: EncodableVersion,
71-
}
72-
Ok(req.json(&R {
73-
version: EncodableVersion::from(version, &krate.name, published_by, actions),
74-
}))
56+
let version = EncodableVersion::from(version, &krate.name, published_by, actions);
57+
Ok(req.json(&json!({ "version": version })))
7558
}

0 commit comments

Comments
 (0)