Skip to content

Commit 1ad38e4

Browse files
authored
model/owner: Extract CrateOwner::from_invite() fn (#10552)
1 parent 983cdda commit 1ad38e4

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

src/models/crate_owner_invitation.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use diesel_async::{AsyncConnection, AsyncPgConnection, RunQueryDsl};
55
use secrecy::SecretString;
66

77
use crate::config;
8-
use crate::models::{CrateOwner, OwnerKind};
8+
use crate::models::CrateOwner;
99
use crate::schema::{crate_owner_invitations, crate_owners, crates};
1010

1111
#[derive(Debug)]
@@ -124,13 +124,7 @@ impl CrateOwnerInvitation {
124124
conn.transaction(|conn| {
125125
async move {
126126
diesel::insert_into(crate_owners::table)
127-
.values(&CrateOwner {
128-
crate_id: self.crate_id,
129-
owner_id: self.invited_user_id,
130-
created_by: self.invited_by_user_id,
131-
owner_kind: OwnerKind::User,
132-
email_notifications: true,
133-
})
127+
.values(CrateOwner::from_invite(&self))
134128
.on_conflict(crate_owners::table.primary_key())
135129
.do_update()
136130
.set(crate_owners::deleted.eq(false))

src/models/owner.rs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use diesel::pg::Pg;
44
use diesel::prelude::*;
55
use diesel_async::AsyncPgConnection;
66

7-
use crate::models::{Crate, Team, User};
7+
use crate::models::{Crate, CrateOwnerInvitation, Team, User};
88
use crate::schema::crate_owners;
99
use crates_io_diesel_helpers::pg_enum;
1010

@@ -36,6 +36,16 @@ impl CrateOwner {
3636
.filter(crate_owners::owner_kind.eq(kind))
3737
.into_boxed()
3838
}
39+
40+
pub fn from_invite(invite: &CrateOwnerInvitation) -> Self {
41+
Self {
42+
crate_id: invite.crate_id,
43+
owner_id: invite.invited_user_id,
44+
created_by: invite.invited_by_user_id,
45+
owner_kind: OwnerKind::User,
46+
email_notifications: true,
47+
}
48+
}
3949
}
4050

4151
pg_enum! {

0 commit comments

Comments
 (0)