From 74e0bed38f4b76535ebe157fc206057684b5e4b1 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Thu, 23 Feb 2023 15:17:22 +0100 Subject: [PATCH] Fix compilation errors after restructuring `room_transaction` --- crates/collab/src/db.rs | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/crates/collab/src/db.rs b/crates/collab/src/db.rs index da0bd51d5dcb027d7d042604e8de7a847e437a9f..a2939bf9ae5f37e1618ab158811f4821827da1cd 100644 --- a/crates/collab/src/db.rs +++ b/crates/collab/src/db.rs @@ -1715,8 +1715,8 @@ impl Database { leader_connection: ConnectionId, follower_connection: ConnectionId, ) -> Result> { - self.room_transaction(|tx| async move { - let room_id = self.room_id_for_project(project_id, &*tx).await?; + let room_id = self.room_id_for_project(project_id).await?; + self.room_transaction(room_id, |tx| async move { follower::ActiveModel { room_id: ActiveValue::set(room_id), project_id: ActiveValue::set(project_id), @@ -1733,7 +1733,8 @@ impl Database { .insert(&*tx) .await?; - Ok((room_id, self.get_room(room_id, &*tx).await?)) + let room = self.get_room(room_id, &*tx).await?; + Ok(room) }) .await } @@ -1744,8 +1745,8 @@ impl Database { leader_connection: ConnectionId, follower_connection: ConnectionId, ) -> Result> { - self.room_transaction(|tx| async move { - let room_id = self.room_id_for_project(project_id, &*tx).await?; + let room_id = self.room_id_for_project(project_id).await?; + self.room_transaction(room_id, |tx| async move { follower::Entity::delete_many() .filter( Condition::all() @@ -1767,30 +1768,12 @@ impl Database { .exec(&*tx) .await?; - Ok((room_id, self.get_room(room_id, &*tx).await?)) + let room = self.get_room(room_id, &*tx).await?; + Ok(room) }) .await } - async fn room_id_for_project( - &self, - project_id: ProjectId, - tx: &DatabaseTransaction, - ) -> Result { - #[derive(Copy, Clone, Debug, EnumIter, DeriveColumn)] - enum QueryAs { - RoomId, - } - - Ok(project::Entity::find_by_id(project_id) - .select_only() - .column(project::Column::RoomId) - .into_values::<_, QueryAs>() - .one(&*tx) - .await? - .ok_or_else(|| anyhow!("no such project"))?) - } - pub async fn update_room_participant_location( &self, room_id: RoomId,