Skip to content

Commit 72d42c2

Browse files
committed
views: Implement from() method for EncodablePrivateUser
1 parent cd425a3 commit 72d42c2

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

src/controllers/user/me.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use crate::models::{
1010
CrateOwner, Email, Follow, NewEmail, OwnerKind, User, Version, VersionOwnerAction,
1111
};
1212
use crate::schema::{crate_owners, crates, emails, follows, users, versions};
13-
use crate::views::{EncodableMe, EncodableVersion, OwnedCrate};
13+
use crate::views::{EncodableMe, EncodablePrivateUser, EncodableVersion, OwnedCrate};
1414

1515
/// Handles the `GET /me` route.
1616
pub fn me(req: &mut dyn RequestExt) -> EndpointResult {
@@ -46,7 +46,7 @@ pub fn me(req: &mut dyn RequestExt) -> EndpointResult {
4646
let verified = verified.unwrap_or(false);
4747
let verification_sent = verified || verification_sent;
4848
Ok(req.json(&EncodableMe {
49-
user: user.encodable_private(email, verified, verification_sent),
49+
user: EncodablePrivateUser::from(user, email, verified, verification_sent),
5050
owned_crates,
5151
}))
5252
}

src/views.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,17 @@ pub struct EncodablePrivateUser {
352352
pub url: Option<String>,
353353
}
354354

355+
impl EncodablePrivateUser {
356+
pub fn from(
357+
user: User,
358+
email: Option<String>,
359+
email_verified: bool,
360+
email_verification_sent: bool,
361+
) -> Self {
362+
user.encodable_private(email, email_verified, email_verification_sent)
363+
}
364+
}
365+
355366
/// The serialization format for the `User` model.
356367
/// Same as private user, except no email field
357368
#[derive(Deserialize, Serialize, Debug)]

0 commit comments

Comments
 (0)