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?; }