This commit is contained in:
Antonio Scandurra 2022-11-17 15:35:03 +01:00
parent 0f4598a243
commit 7dae21cb36
2 changed files with 6 additions and 10 deletions

View File

@ -49,6 +49,7 @@ impl BeginTransaction for Db<sqlx::Postgres> {
}
// In Sqlite, transactions are inherently serializable.
#[cfg(test)]
impl BeginTransaction for Db<sqlx::Sqlite> {
type Database = sqlx::Sqlite;
@ -1141,10 +1142,7 @@ where
.await
}
pub async fn leave_room_for_connection(
&self,
connection_id: ConnectionId,
) -> Result<Option<LeftRoom>> {
pub async fn leave_room(&self, connection_id: ConnectionId) -> Result<Option<LeftRoom>> {
self.transact(|mut tx| async move {
// Leave room.
let room_id = sqlx::query_scalar::<_, RoomId>(
@ -1498,8 +1496,7 @@ where
.bind(user_id)
.bind(connection_id.0 as i32)
.fetch_one(&mut tx)
.await
.unwrap();
.await?;
if !worktrees.is_empty() {
let mut params = "(?, ?, ?, ?, ?, ?, ?),".repeat(worktrees.len());
@ -1530,7 +1527,7 @@ where
.bind(0)
.bind(false);
}
query.execute(&mut tx).await.unwrap();
query.execute(&mut tx).await?;
}
sqlx::query(
@ -1551,8 +1548,7 @@ where
.bind(0)
.bind(true)
.execute(&mut tx)
.await
.unwrap();
.await?;
let room = self.commit_room_transaction(room_id, tx).await?;
Ok((project_id, room))

View File

@ -629,7 +629,7 @@ impl Server {
) -> Result<()> {
let mut contacts_to_update = HashSet::default();
let Some(left_room) = self.app_state.db.leave_room_for_connection(leaving_connection_id).await? else {
let Some(left_room) = self.app_state.db.leave_room(leaving_connection_id).await? else {
return Err(anyhow!("no room to leave"))?;
};
contacts_to_update.insert(leaving_user_id);