Skip to content

Commit f2b7e53

Browse files
committed
controllers::krate::owners: Use json! macro to simplify JSON serialization code
1 parent e36d08e commit f2b7e53

File tree

1 file changed

+11
-27
lines changed

1 file changed

+11
-27
lines changed

src/controllers/krate/owners.rs

Lines changed: 11 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ pub fn owners(req: &mut dyn RequestExt) -> EndpointResult {
99
let crate_name = &req.params()["crate_id"];
1010
let conn = req.db_read_only()?;
1111
let krate: Crate = Crate::by_name(crate_name).first(&*conn)?;
12-
let owners = krate.owners(&conn)?.into_iter().map(Owner::into).collect();
12+
let owners = krate
13+
.owners(&conn)?
14+
.into_iter()
15+
.map(Owner::into)
16+
.collect::<Vec<EncodableOwner>>();
1317

14-
#[derive(Serialize)]
15-
struct R {
16-
users: Vec<EncodableOwner>,
17-
}
18-
Ok(req.json(&R { users: owners }))
18+
Ok(req.json(&json!({ "users": owners })))
1919
}
2020

2121
/// Handles the `GET /crates/:crate_id/owner_team` route.
@@ -26,13 +26,9 @@ pub fn owner_team(req: &mut dyn RequestExt) -> EndpointResult {
2626
let owners = Team::owning(&krate, &conn)?
2727
.into_iter()
2828
.map(Owner::into)
29-
.collect();
29+
.collect::<Vec<EncodableOwner>>();
3030

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

3834
/// Handles the `GET /crates/:crate_id/owner_user` route.
@@ -43,13 +39,9 @@ pub fn owner_user(req: &mut dyn RequestExt) -> EndpointResult {
4339
let owners = User::owning(&krate, &conn)?
4440
.into_iter()
4541
.map(Owner::into)
46-
.collect();
42+
.collect::<Vec<EncodableOwner>>();
4743

48-
#[derive(Serialize)]
49-
struct R {
50-
users: Vec<EncodableOwner>,
51-
}
52-
Ok(req.json(&R { users: owners }))
44+
Ok(req.json(&json!({ "users": owners })))
5345
}
5446

5547
/// Handles the `PUT /crates/:crate_id/owners` route.
@@ -135,14 +127,6 @@ fn modify_owners(req: &mut dyn RequestExt, add: bool) -> EndpointResult {
135127
"owners successfully removed".to_owned()
136128
};
137129

138-
#[derive(Serialize)]
139-
struct R {
140-
ok: bool,
141-
msg: String,
142-
}
143-
Ok(req.json(&R {
144-
ok: true,
145-
msg: comma_sep_msg,
146-
}))
130+
Ok(req.json(&json!({ "ok": true, "msg": comma_sep_msg })))
147131
})
148132
}

0 commit comments

Comments
 (0)