diff --git a/crates/collab/src/api.rs b/crates/collab/src/api.rs index a055494791..4c1c60a04f 100644 --- a/crates/collab/src/api.rs +++ b/crates/collab/src/api.rs @@ -76,7 +76,7 @@ pub async fn validate_api_token(req: Request, next: Next) -> impl IntoR #[derive(Debug, Deserialize)] struct AuthenticatedUserParams { - github_user_id: Option, + github_user_id: Option, github_login: String, } @@ -123,14 +123,14 @@ async fn get_users( #[derive(Deserialize, Debug)] struct CreateUserParams { - github_user_id: u32, + github_user_id: i32, github_login: String, email_address: String, email_confirmation_code: Option, #[serde(default)] admin: bool, #[serde(default)] - invite_count: u32, + invite_count: i32, } #[derive(Serialize, Debug)] @@ -204,11 +204,11 @@ async fn create_user( #[derive(Deserialize)] struct UpdateUserParams { admin: Option, - invite_count: Option, + invite_count: Option, } async fn update_user( - Path(user_id): Path, + Path(user_id): Path, Json(params): Json, Extension(app): Extension>, Extension(rpc_server): Extension>, @@ -230,7 +230,7 @@ async fn update_user( } async fn destroy_user( - Path(user_id): Path, + Path(user_id): Path, Extension(app): Extension>, ) -> Result<()> { app.db.destroy_user(UserId(user_id)).await?; diff --git a/crates/collab/src/db.rs b/crates/collab/src/db.rs index b01c6e7504..945ac1b577 100644 --- a/crates/collab/src/db.rs +++ b/crates/collab/src/db.rs @@ -159,7 +159,7 @@ impl Database { pub async fn get_user_by_github_account( &self, github_login: &str, - github_user_id: Option, + github_user_id: Option, ) -> Result> { self.transact(|tx| async { let tx = tx; @@ -879,7 +879,7 @@ impl Database { .await } - pub async fn set_invite_count_for_user(&self, id: UserId, count: u32) -> Result<()> { + pub async fn set_invite_count_for_user(&self, id: UserId, count: i32) -> Result<()> { self.transact(|tx| async move { if count > 0 { user::Entity::update_many() @@ -910,11 +910,11 @@ impl Database { .await } - pub async fn get_invite_code_for_user(&self, id: UserId) -> Result> { + pub async fn get_invite_code_for_user(&self, id: UserId) -> Result> { self.transact(|tx| async move { match user::Entity::find_by_id(id).one(&tx).await? { Some(user) if user.invite_code.is_some() => { - Ok(Some((user.invite_code.unwrap(), user.invite_count as u32))) + Ok(Some((user.invite_code.unwrap(), user.invite_count))) } _ => Ok(None), } @@ -982,9 +982,9 @@ impl Database { room_participant::ActiveModel { room_id: ActiveValue::set(room_id), user_id: ActiveValue::set(user_id), - answering_connection_id: ActiveValue::set(Some(connection_id.0)), + answering_connection_id: ActiveValue::set(Some(connection_id.0 as i32)), calling_user_id: ActiveValue::set(user_id), - calling_connection_id: ActiveValue::set(connection_id.0), + calling_connection_id: ActiveValue::set(connection_id.0 as i32), ..Default::default() } .insert(&tx) @@ -1009,7 +1009,7 @@ impl Database { room_id: ActiveValue::set(room_id), user_id: ActiveValue::set(called_user_id), calling_user_id: ActiveValue::set(calling_user_id), - calling_connection_id: ActiveValue::set(calling_connection_id.0), + calling_connection_id: ActiveValue::set(calling_connection_id.0 as i32), initial_project_id: ActiveValue::set(initial_project_id), ..Default::default() } @@ -1126,7 +1126,7 @@ impl Database { .and(room_participant::Column::AnsweringConnectionId.is_null()), ) .set(room_participant::ActiveModel { - answering_connection_id: ActiveValue::set(Some(connection_id.0)), + answering_connection_id: ActiveValue::set(Some(connection_id.0 as i32)), ..Default::default() }) .exec(&tx) @@ -1488,7 +1488,7 @@ impl Database { let project = project::ActiveModel { room_id: ActiveValue::set(participant.room_id), host_user_id: ActiveValue::set(participant.user_id), - host_connection_id: ActiveValue::set(connection_id.0), + host_connection_id: ActiveValue::set(connection_id.0 as i32), ..Default::default() } .insert(&tx) @@ -1508,7 +1508,7 @@ impl Database { project_collaborator::ActiveModel { project_id: ActiveValue::set(project.id), - connection_id: ActiveValue::set(connection_id.0), + connection_id: ActiveValue::set(connection_id.0 as i32), user_id: ActiveValue::set(participant.user_id), replica_id: ActiveValue::set(ReplicaId(0)), is_host: ActiveValue::set(true), @@ -1536,7 +1536,7 @@ impl Database { .one(&tx) .await? .ok_or_else(|| anyhow!("project not found"))?; - if project.host_connection_id == connection_id.0 { + if project.host_connection_id == connection_id.0 as i32 { let room_id = project.room_id; project::Entity::delete(project.into_active_model()) .exec(&tx) @@ -1633,7 +1633,7 @@ impl Database { path: ActiveValue::set(entry.path.clone()), inode: ActiveValue::set(entry.inode as i64), mtime_seconds: ActiveValue::set(mtime.seconds as i64), - mtime_nanos: ActiveValue::set(mtime.nanos), + mtime_nanos: ActiveValue::set(mtime.nanos as i32), is_symlink: ActiveValue::set(entry.is_symlink), is_ignored: ActiveValue::set(entry.is_ignored), } @@ -1696,7 +1696,7 @@ impl Database { .one(&tx) .await? .ok_or_else(|| anyhow!("no such project"))?; - if project.host_connection_id != connection_id.0 { + if project.host_connection_id != connection_id.0 as i32 { return Err(anyhow!("can't update a project hosted by someone else"))?; } @@ -1706,8 +1706,8 @@ impl Database { worktree_id: ActiveValue::set(worktree_id), path: ActiveValue::set(summary.path.clone()), language_server_id: ActiveValue::set(summary.language_server_id as i64), - error_count: ActiveValue::set(summary.error_count), - warning_count: ActiveValue::set(summary.warning_count), + error_count: ActiveValue::set(summary.error_count as i32), + warning_count: ActiveValue::set(summary.warning_count as i32), ..Default::default() }) .on_conflict( @@ -1750,7 +1750,7 @@ impl Database { .one(&tx) .await? .ok_or_else(|| anyhow!("no such project"))?; - if project.host_connection_id != connection_id.0 { + if project.host_connection_id != connection_id.0 as i32 { return Err(anyhow!("can't update a project hosted by someone else"))?; } @@ -1813,7 +1813,7 @@ impl Database { } let new_collaborator = project_collaborator::ActiveModel { project_id: ActiveValue::set(project_id), - connection_id: ActiveValue::set(connection_id.0), + connection_id: ActiveValue::set(connection_id.0 as i32), user_id: ActiveValue::set(participant.user_id), replica_id: ActiveValue::set(replica_id), is_host: ActiveValue::set(false), @@ -1859,7 +1859,7 @@ impl Database { inode: db_entry.inode as u64, mtime: Some(proto::Timestamp { seconds: db_entry.mtime_seconds as u64, - nanos: db_entry.mtime_nanos, + nanos: db_entry.mtime_nanos as u32, }), is_symlink: db_entry.is_symlink, is_ignored: db_entry.is_ignored, @@ -1946,7 +1946,7 @@ impl Database { .await?; let connection_ids = collaborators .into_iter() - .map(|collaborator| ConnectionId(collaborator.connection_id)) + .map(|collaborator| ConnectionId(collaborator.connection_id as u32)) .collect(); self.commit_room_transaction( @@ -1955,7 +1955,7 @@ impl Database { LeftProject { id: project_id, host_user_id: project.host_user_id, - host_connection_id: ConnectionId(project.host_connection_id), + host_connection_id: ConnectionId(project.host_connection_id as u32), connection_ids, }, ) @@ -1977,7 +1977,7 @@ impl Database { if collaborators .iter() - .any(|collaborator| collaborator.connection_id == connection_id.0) + .any(|collaborator| collaborator.connection_id == connection_id.0 as i32) { Ok(collaborators) } else { @@ -2191,8 +2191,8 @@ impl DerefMut for RoomGuard { #[derive(Debug, Serialize, Deserialize)] pub struct NewUserParams { pub github_login: String, - pub github_user_id: u32, - pub invite_count: u32, + pub github_user_id: i32, + pub invite_count: i32, } #[derive(Debug)] @@ -2227,15 +2227,15 @@ macro_rules! id_type { Deserialize, )] #[serde(transparent)] - pub struct $name(pub u32); + pub struct $name(pub i32); impl $name { #[allow(unused)] - pub const MAX: Self = Self(u32::MAX); + pub const MAX: Self = Self(i32::MAX); #[allow(unused)] pub fn from_proto(value: u64) -> Self { - Self(value as u32) + Self(value as i32) } #[allow(unused)] @@ -2252,7 +2252,7 @@ macro_rules! id_type { impl From<$name> for sea_query::Value { fn from(value: $name) -> Self { - sea_query::Value::Unsigned(Some(value.0)) + sea_query::Value::Int(Some(value.0)) } } @@ -2262,7 +2262,7 @@ macro_rules! id_type { pre: &str, col: &str, ) -> Result { - Ok(Self(u32::try_get(res, pre, col)?)) + Ok(Self(i32::try_get(res, pre, col)?)) } } @@ -2302,11 +2302,11 @@ macro_rules! id_type { } fn array_type() -> sea_query::ArrayType { - sea_query::ArrayType::Unsigned + sea_query::ArrayType::Int } fn column_type() -> sea_query::ColumnType { - sea_query::ColumnType::Unsigned(None) + sea_query::ColumnType::Integer(None) } } diff --git a/crates/collab/src/db/project.rs b/crates/collab/src/db/project.rs index 5bf8addec8..b109ddc4b8 100644 --- a/crates/collab/src/db/project.rs +++ b/crates/collab/src/db/project.rs @@ -8,7 +8,7 @@ pub struct Model { pub id: ProjectId, pub room_id: RoomId, pub host_user_id: UserId, - pub host_connection_id: u32, + pub host_connection_id: i32, } #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] diff --git a/crates/collab/src/db/project_collaborator.rs b/crates/collab/src/db/project_collaborator.rs index 56048c3181..097272fcda 100644 --- a/crates/collab/src/db/project_collaborator.rs +++ b/crates/collab/src/db/project_collaborator.rs @@ -7,7 +7,7 @@ pub struct Model { #[sea_orm(primary_key)] pub id: ProjectCollaboratorId, pub project_id: ProjectId, - pub connection_id: u32, + pub connection_id: i32, pub user_id: UserId, pub replica_id: ReplicaId, pub is_host: bool, diff --git a/crates/collab/src/db/room_participant.rs b/crates/collab/src/db/room_participant.rs index e8f38cf693..c7c804581b 100644 --- a/crates/collab/src/db/room_participant.rs +++ b/crates/collab/src/db/room_participant.rs @@ -8,12 +8,12 @@ pub struct Model { pub id: RoomParticipantId, pub room_id: RoomId, pub user_id: UserId, - pub answering_connection_id: Option, - pub location_kind: Option, + pub answering_connection_id: Option, + pub location_kind: Option, pub location_project_id: Option, pub initial_project_id: Option, pub calling_user_id: UserId, - pub calling_connection_id: u32, + pub calling_connection_id: i32, } #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] diff --git a/crates/collab/src/db/tests.rs b/crates/collab/src/db/tests.rs index 6ca287746a..b276bd5057 100644 --- a/crates/collab/src/db/tests.rs +++ b/crates/collab/src/db/tests.rs @@ -430,7 +430,7 @@ async fn test_fuzzy_search_users() { false, NewUserParams { github_login: github_login.into(), - github_user_id: i as u32, + github_user_id: i as i32, invite_count: 0, }, ) diff --git a/crates/collab/src/db/user.rs b/crates/collab/src/db/user.rs index 9929233044..c2b157bd0a 100644 --- a/crates/collab/src/db/user.rs +++ b/crates/collab/src/db/user.rs @@ -8,11 +8,11 @@ pub struct Model { #[sea_orm(primary_key)] pub id: UserId, pub github_login: String, - pub github_user_id: Option, + pub github_user_id: Option, pub email_address: Option, pub admin: bool, pub invite_code: Option, - pub invite_count: u32, + pub invite_count: i32, pub inviter_id: Option, pub connected_once: bool, pub metrics_id: Uuid, diff --git a/crates/collab/src/db/worktree_diagnostic_summary.rs b/crates/collab/src/db/worktree_diagnostic_summary.rs index 49bf4f6e03..f3dd8083fb 100644 --- a/crates/collab/src/db/worktree_diagnostic_summary.rs +++ b/crates/collab/src/db/worktree_diagnostic_summary.rs @@ -11,8 +11,8 @@ pub struct Model { #[sea_orm(primary_key)] pub path: String, pub language_server_id: i64, - pub error_count: u32, - pub warning_count: u32, + pub error_count: i32, + pub warning_count: i32, } #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] diff --git a/crates/collab/src/db/worktree_entry.rs b/crates/collab/src/db/worktree_entry.rs index f38ef7b3f7..413821201a 100644 --- a/crates/collab/src/db/worktree_entry.rs +++ b/crates/collab/src/db/worktree_entry.rs @@ -14,7 +14,7 @@ pub struct Model { pub path: String, pub inode: i64, pub mtime_seconds: i64, - pub mtime_nanos: u32, + pub mtime_nanos: i32, pub is_symlink: bool, pub is_ignored: bool, } diff --git a/crates/collab/src/integration_tests.rs b/crates/collab/src/integration_tests.rs index c554028407..225501c71d 100644 --- a/crates/collab/src/integration_tests.rs +++ b/crates/collab/src/integration_tests.rs @@ -5383,7 +5383,7 @@ async fn test_random_collaboration( false, NewUserParams { github_login: username.clone(), - github_user_id: (ix + 1) as u32, + github_user_id: (ix + 1) as i32, invite_count: 0, }, ) diff --git a/crates/collab/src/rpc.rs b/crates/collab/src/rpc.rs index d3b95a82e6..9d3917a417 100644 --- a/crates/collab/src/rpc.rs +++ b/crates/collab/src/rpc.rs @@ -381,7 +381,7 @@ impl Server { if let Some((code, count)) = invite_code { this.peer.send(connection_id, proto::UpdateInviteInfo { url: format!("{}{}", this.app_state.config.invite_link_prefix, code), - count, + count: count as u32, })?; } } @@ -1008,7 +1008,7 @@ async fn join_project( let collaborators = project .collaborators .iter() - .filter(|collaborator| collaborator.connection_id != session.connection_id.0) + .filter(|collaborator| collaborator.connection_id != session.connection_id.0 as i32) .map(|collaborator| proto::Collaborator { peer_id: collaborator.connection_id as u32, replica_id: collaborator.replica_id.0 as u32, @@ -1313,7 +1313,8 @@ async fn save_buffer( .await .project_collaborators(project_id, session.connection_id) .await?; - collaborators.retain(|collaborator| collaborator.connection_id != session.connection_id.0); + collaborators + .retain(|collaborator| collaborator.connection_id != session.connection_id.0 as i32); let project_connection_ids = collaborators .into_iter() .map(|collaborator| ConnectionId(collaborator.connection_id as u32));