From a6c89838dd7ac69425212f36cd0d50e4e16bb422 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Wed, 7 Dec 2022 14:24:51 +0100 Subject: [PATCH] Fix inviting user that had already signed up via a different email --- crates/collab/src/db.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/crates/collab/src/db.rs b/crates/collab/src/db.rs index 47eb803887ca513a38729288abf31c85eac70c44..eb021baedf4dc0ed1118fd885ab62a359e3c0c72 100644 --- a/crates/collab/src/db.rs +++ b/crates/collab/src/db.rs @@ -350,17 +350,24 @@ impl Db { .await?; if let Some(inviting_user_id) = 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) + }; + sqlx::query( " INSERT INTO contacts (user_id_a, user_id_b, a_to_b, should_notify, accepted) VALUES - ($1, $2, TRUE, TRUE, TRUE) + ($1, $2, $3, TRUE, TRUE) ON CONFLICT DO NOTHING ", ) - .bind(inviting_user_id) - .bind(user_id) + .bind(user_id_a) + .bind(user_id_b) + .bind(a_to_b) .execute(&mut tx) .await?; }