Skip to content

Commit f94e5e0

Browse files
authored
Merge pull request #10230 from Turbo87/bytes-req
Replace `BytesRequest` with `Json` and `Parts` extractors
2 parents f962796 + edcd4d3 commit f94e5e0

File tree

5 files changed

+16
-130
lines changed

5 files changed

+16
-130
lines changed

src/controllers/crate_owner_invitation.rs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::controllers::helpers::pagination::{Page, PaginationOptions};
55
use crate::models::{Crate, CrateOwnerInvitation, Rights, User};
66
use crate::schema::{crate_owner_invitations, crates, users};
77
use crate::util::errors::{bad_request, forbidden, internal, AppResult};
8-
use crate::util::{BytesRequest, RequestUtils};
8+
use crate::util::RequestUtils;
99
use crate::views::{
1010
EncodableCrateOwnerInvitation, EncodableCrateOwnerInvitationV1, EncodablePublicUser,
1111
InvitationResponse,
@@ -279,7 +279,7 @@ struct ResponseMeta {
279279
}
280280

281281
#[derive(Deserialize)]
282-
struct OwnerInvitation {
282+
pub struct OwnerInvitation {
283283
crate_owner_invite: InvitationResponse,
284284
}
285285

@@ -295,13 +295,9 @@ struct OwnerInvitation {
295295
)]
296296
pub async fn handle_crate_owner_invitation(
297297
state: AppState,
298-
req: BytesRequest,
298+
parts: Parts,
299+
Json(crate_invite): Json<OwnerInvitation>,
299300
) -> AppResult<ErasedJson> {
300-
let (parts, body) = req.0.into_parts();
301-
302-
let crate_invite: OwnerInvitation =
303-
serde_json::from_slice(&body).map_err(|_| bad_request("invalid json request"))?;
304-
305301
let crate_invite = crate_invite.crate_owner_invite;
306302

307303
let mut conn = state.db_write().await?;

src/controllers/user/me.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ use crate::models::krate::CrateName;
1616
use crate::models::{CrateOwner, Follow, OwnerKind, User, Version, VersionOwnerAction};
1717
use crate::schema::{crate_owners, crates, emails, follows, users, versions};
1818
use crate::util::errors::{bad_request, AppResult};
19-
use crate::util::BytesRequest;
2019
use crate::views::{EncodableMe, EncodablePrivateUser, EncodableVersion, OwnedCrate};
2120

2221
/// Get the currently authenticated user.
@@ -140,6 +139,12 @@ pub async fn confirm_user_email(state: AppState, Path(token): Path<String>) -> A
140139
ok_true()
141140
}
142141

142+
#[derive(Deserialize)]
143+
pub struct CrateEmailNotifications {
144+
id: i32,
145+
email_notifications: bool,
146+
}
147+
143148
/// Update email notification settings for the authenticated user.
144149
///
145150
/// This endpoint was implemented for an experimental feature that was never
@@ -151,19 +156,14 @@ pub async fn confirm_user_email(state: AppState, Path(token): Path<String>) -> A
151156
responses((status = 200, description = "Successful Response")),
152157
)]
153158
#[deprecated]
154-
pub async fn update_email_notifications(app: AppState, req: BytesRequest) -> AppResult<Response> {
159+
pub async fn update_email_notifications(
160+
app: AppState,
161+
parts: Parts,
162+
Json(updates): Json<Vec<CrateEmailNotifications>>,
163+
) -> AppResult<Response> {
155164
use diesel::pg::upsert::excluded;
156165

157-
let (parts, body) = req.0.into_parts();
158-
159-
#[derive(Deserialize)]
160-
struct CrateEmailNotifications {
161-
id: i32,
162-
email_notifications: bool,
163-
}
164-
165-
let updates: HashMap<i32, bool> = serde_json::from_slice::<Vec<CrateEmailNotifications>>(&body)
166-
.map_err(|_| bad_request("invalid json request"))?
166+
let updates: HashMap<i32, bool> = updates
167167
.iter()
168168
.map(|c| (c.id, c.email_notifications))
169169
.collect();

src/controllers/util.rs

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use crate::middleware::app::RequestApp;
22
use crate::middleware::log_request::RequestLogExt;
33
use crate::util::errors::{forbidden, AppResult};
4-
use crate::util::BytesRequest;
54
use http::request::Parts;
65
use http::{header, Extensions, HeaderMap, HeaderValue, Method, Request, Uri, Version};
76

@@ -73,21 +72,3 @@ impl<B> RequestPartsExt for Request<B> {
7372
self.extensions()
7473
}
7574
}
76-
77-
impl RequestPartsExt for BytesRequest {
78-
fn method(&self) -> &Method {
79-
self.0.method()
80-
}
81-
fn uri(&self) -> &Uri {
82-
self.0.uri()
83-
}
84-
fn version(&self) -> Version {
85-
self.0.version()
86-
}
87-
fn headers(&self) -> &HeaderMap<HeaderValue> {
88-
self.0.headers()
89-
}
90-
fn extensions(&self) -> &Extensions {
91-
self.0.extensions()
92-
}
93-
}

src/util.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
pub use self::bytes_request::BytesRequest;
21
pub use self::io_util::{read_fill, read_le_u32};
32
pub use self::request_helpers::*;
43

5-
mod bytes_request;
64
pub mod diesel;
75
pub mod errors;
86
mod io_util;

src/util/bytes_request.rs

Lines changed: 0 additions & 89 deletions
This file was deleted.

0 commit comments

Comments
 (0)