From 6adc1b7ba6091dc1029feaf5247477833cab4a60 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Fri, 25 Dec 2020 13:54:23 +0100 Subject: [PATCH 1/2] views: Implement `from()` methods for `EncodableCrateOwnerInvitation` --- src/controllers/crate_owner_invitation.rs | 2 +- src/views.rs | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/controllers/crate_owner_invitation.rs b/src/controllers/crate_owner_invitation.rs index 24718b8a7fc..84b814532d1 100644 --- a/src/controllers/crate_owner_invitation.rs +++ b/src/controllers/crate_owner_invitation.rs @@ -14,7 +14,7 @@ pub fn list(req: &mut dyn RequestExt) -> EndpointResult { .load(&*conn)?; let crate_owner_invitations = crate_owner_invitations .into_iter() - .map(|i| i.encodable(conn)) + .map(|i| EncodableCrateOwnerInvitation::from(i, conn)) .collect(); #[derive(Serialize)] diff --git a/src/views.rs b/src/views.rs index 7012d815c1e..feaf376b56e 100644 --- a/src/views.rs +++ b/src/views.rs @@ -1,10 +1,11 @@ use chrono::NaiveDateTime; +use diesel::PgConnection; use std::collections::HashMap; use crate::github; use crate::models::{ - Badge, Category, CreatedApiToken, Dependency, DependencyKind, Keyword, Owner, - ReverseDependency, Team, User, VersionDownload, + Badge, Category, CrateOwnerInvitation, CreatedApiToken, Dependency, DependencyKind, Keyword, + Owner, ReverseDependency, Team, User, VersionDownload, }; use crate::util::rfc3339; @@ -76,6 +77,12 @@ pub struct EncodableCrateOwnerInvitation { pub created_at: NaiveDateTime, } +impl EncodableCrateOwnerInvitation { + pub fn from(invitation: CrateOwnerInvitation, conn: &PgConnection) -> Self { + invitation.encodable(conn) + } +} + #[derive(Deserialize, Serialize, Debug, Copy, Clone)] pub struct InvitationResponse { pub crate_id: i32, From ff0c97938765a1b54ac6da5930c269982c50f575 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Fri, 25 Dec 2020 13:56:09 +0100 Subject: [PATCH 2/2] models::crate_owner_invitation: Inline `encodable()` method --- src/models/crate_owner_invitation.rs | 10 ---------- src/views.rs | 7 ++++++- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/models/crate_owner_invitation.rs b/src/models/crate_owner_invitation.rs index e94fac6cac6..6836b56e912 100644 --- a/src/models/crate_owner_invitation.rs +++ b/src/models/crate_owner_invitation.rs @@ -2,7 +2,6 @@ use chrono::NaiveDateTime; use diesel::prelude::*; use crate::schema::{crate_owner_invitations, crates, users}; -use crate::views::EncodableCrateOwnerInvitation; /// The model representing a row in the `crate_owner_invitations` database table. #[derive(Clone, Debug, PartialEq, Eq, Identifiable, Queryable)] @@ -40,13 +39,4 @@ impl CrateOwnerInvitation { .first(&*conn) .unwrap_or_else(|_| String::from("(unknown crate name)")) } - - pub fn encodable(self, conn: &PgConnection) -> EncodableCrateOwnerInvitation { - EncodableCrateOwnerInvitation { - invited_by_username: self.invited_by_username(conn), - crate_name: self.crate_name(conn), - crate_id: self.crate_id, - created_at: self.created_at, - } - } } diff --git a/src/views.rs b/src/views.rs index feaf376b56e..1c77d8c3fce 100644 --- a/src/views.rs +++ b/src/views.rs @@ -79,7 +79,12 @@ pub struct EncodableCrateOwnerInvitation { impl EncodableCrateOwnerInvitation { pub fn from(invitation: CrateOwnerInvitation, conn: &PgConnection) -> Self { - invitation.encodable(conn) + Self { + invited_by_username: invitation.invited_by_username(conn), + crate_name: invitation.crate_name(conn), + crate_id: invitation.crate_id, + created_at: invitation.created_at, + } } }