From 665219fb00826adf532124c5ba17e5bb88e60af2 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Wed, 7 Dec 2022 14:01:49 +0100 Subject: [PATCH] Fix inviting user that had already signed up via a different email --- crates/collab/src/db.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/crates/collab/src/db.rs b/crates/collab/src/db.rs index 1cda33c00c692664c17555d57e560a5767a70548..0e9227fd070cd7a9d9ab857b266d8eb042b12f0f 100644 --- a/crates/collab/src/db.rs +++ b/crates/collab/src/db.rs @@ -878,10 +878,16 @@ impl Database { let signup = signup.update(&*tx).await?; if let Some(inviting_user_id) = signup.inviting_user_id { + let (user_id_a, user_id_b, a_to_b) = if inviting_user_id < user.id { + (inviting_user_id, user.id, true) + } else { + (user.id, inviting_user_id, false) + }; + contact::Entity::insert(contact::ActiveModel { - user_id_a: ActiveValue::set(inviting_user_id), - user_id_b: ActiveValue::set(user.id), - a_to_b: ActiveValue::set(true), + user_id_a: ActiveValue::set(user_id_a), + user_id_b: ActiveValue::set(user_id_b), + a_to_b: ActiveValue::set(a_to_b), should_notify: ActiveValue::set(true), accepted: ActiveValue::set(true), ..Default::default()