From 36caafc29168b90a83122a341d880be550258f7d Mon Sep 17 00:00:00 2001 From: Infiniwave <61062461+infiniwave@users.noreply.github.com> Date: Tue, 13 Aug 2024 22:13:10 +0000 Subject: [PATCH] fix: update mongodb --- Cargo.lock | 4 +- src/services/database/calls.rs | 3 +- src/services/database/channels.rs | 12 ++-- src/services/database/events.rs | 9 +-- src/services/database/infractions.rs | 30 ++++------ src/services/database/invites.rs | 22 +++---- src/services/database/members.rs | 22 +++---- src/services/database/messages.rs | 5 +- src/services/database/roles.rs | 21 +++---- src/services/database/scopes.rs | 37 +++++------- src/services/database/spaces.rs | 89 +++++++++------------------- src/services/database/users.rs | 82 ++++++++++--------------- src/services/webrtc.rs | 26 +++----- 13 files changed, 132 insertions(+), 230 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dce4ce9..bd18c85 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1131,9 +1131,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" +checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" dependencies = [ "equivalent", "hashbrown", diff --git a/src/services/database/calls.rs b/src/services/database/calls.rs index 75ac352..7e2ca80 100644 --- a/src/services/database/calls.rs +++ b/src/services/database/calls.rs @@ -20,7 +20,7 @@ impl Call { let database = super::get_database(); database .collection::("calls") - .insert_one(self.clone(), None) + .insert_one(self.clone()) .await?; Ok(()) } @@ -39,7 +39,6 @@ impl Call { "ended_at": chrono::Utc::now().timestamp_millis(), }, }, - None, ) .await?; Ok(()) diff --git a/src/services/database/channels.rs b/src/services/database/channels.rs index 09e699e..276cad0 100644 --- a/src/services/database/channels.rs +++ b/src/services/database/channels.rs @@ -56,12 +56,9 @@ impl Channel { let database = super::get_database(); let channel = database .collection::("channels") - .find_one( - doc! { - "id": id, - }, - None, - ) + .find_one(doc! { + "id": id, + }) .await?; match channel { Some(channel) => Ok(channel), @@ -94,7 +91,8 @@ impl Channel { .build(); let messages: Vec<_> = database .collection::("messages") - .find(query, options) + .find(query) + .with_options(options) .await? .collect() .await; diff --git a/src/services/database/events.rs b/src/services/database/events.rs index d912420..f63f6a9 100644 --- a/src/services/database/events.rs +++ b/src/services/database/events.rs @@ -129,12 +129,9 @@ pub async fn get_event(event_id: String) -> Result { let database = super::get_database(); let event = database .collection::("events") - .find_one( - doc! { - "id": event_id, - }, - None, - ) + .find_one(doc! { + "id": event_id, + }) .await?; match event { Some(event) => Ok(event), diff --git a/src/services/database/infractions.rs b/src/services/database/infractions.rs index 51bb463..c7a9c93 100644 --- a/src/services/database/infractions.rs +++ b/src/services/database/infractions.rs @@ -45,7 +45,7 @@ pub async fn create_ban( }; database .collection::("infraction") - .insert_one(ban, None) + .insert_one(ban) .await?; Ok(()) } @@ -54,17 +54,14 @@ pub async fn is_banned(user_id: String, space_id: String) -> Result { let database = super::get_database(); let bans = database .collection::("infractions") - .find( - doc! { - "member_id": user_id, - "space_id": space_id, - "expires_at": { - "$gt": chrono::Utc::now().timestamp_millis() - }, - "infraction_type": "BAN" + .find(doc! { + "member_id": user_id, + "space_id": space_id, + "expires_at": { + "$gt": chrono::Utc::now().timestamp_millis() }, - None, - ) + "infraction_type": "BAN" + }) .await?; let is_banned = bans.count().await > 0; Ok(is_banned) @@ -74,13 +71,10 @@ pub async fn revoke_ban(ban_id: String) -> Result<()> { let database = super::get_database(); database .collection::("infractions") - .delete_one( - doc! { - "id": ban_id, - "infraction_type": "BAN" - }, - None, - ) + .delete_one(doc! { + "id": ban_id, + "infraction_type": "BAN" + }) .await?; Ok(()) } diff --git a/src/services/database/invites.rs b/src/services/database/invites.rs index db8ac0b..fcf43d1 100644 --- a/src/services/database/invites.rs +++ b/src/services/database/invites.rs @@ -48,7 +48,7 @@ impl Invite { let database = super::get_database(); database .collection::("invites") - .insert_one(invite.clone(), None) + .insert_one(invite.clone()) .await?; Ok(invite) } @@ -57,12 +57,9 @@ impl Invite { let database = super::get_database(); let invite = database .collection::("invites") - .find_one( - doc! { - "id": code, - }, - None, - ) + .find_one(doc! { + "id": code, + }) .await?; match invite { Some(invite) => Ok(invite), @@ -73,12 +70,9 @@ impl Invite { let database = super::get_database(); let result = database .collection::("invites") - .delete_one( - doc! { - "id": &self.id, - }, - None, - ) + .delete_one(doc! { + "id": &self.id, + }) .await? .deleted_count > 0; @@ -104,7 +98,7 @@ pub async fn get_invites(channel_id: String, space_id: Option) -> Result } let invites: std::result::Result, _> = database .collection::("invites") - .find(query, None) + .find(query) .await? .collect::>() .await diff --git a/src/services/database/members.rs b/src/services/database/members.rs index 327d892..5d9f237 100644 --- a/src/services/database/members.rs +++ b/src/services/database/members.rs @@ -123,13 +123,10 @@ impl Member { let database = super::get_database(); let member = database .collection::("members") - .find_one( - doc! { - "id": id, - "space_id": space_id, - }, - None, - ) + .find_one(doc! { + "id": id, + "space_id": space_id, + }) .await? .ok_or(crate::errors::Error::NotFound)?; Ok(member) @@ -139,13 +136,10 @@ impl Member { let database = super::get_database(); database .collection::("members") - .delete_one( - doc! { - "id": self.id.clone(), - "space_id": space_id - }, - None, - ) + .delete_one(doc! { + "id": self.id.clone(), + "space_id": space_id + }) .await?; Ok(()) } diff --git a/src/services/database/messages.rs b/src/services/database/messages.rs index 4f84fd2..183cecd 100644 --- a/src/services/database/messages.rs +++ b/src/services/database/messages.rs @@ -30,7 +30,7 @@ impl Message { let database = super::get_database(); database .collection::("messages") - .insert_one(message.clone(), None) + .insert_one(message.clone()) .await?; Ok(message) } @@ -45,7 +45,6 @@ impl Message { "edited": true, "editedAt": chrono::Utc::now().timestamp_millis(), } }, - None, ) .await?; match message { @@ -58,7 +57,7 @@ impl Message { let database = super::get_database(); let message = database .collection::("messages") - .find_one_and_delete(doc! { "id": &self.id }, None) + .find_one_and_delete(doc! { "id": &self.id }) .await?; match message { Some(message) => Ok(message), diff --git a/src/services/database/roles.rs b/src/services/database/roles.rs index fa706d6..f7cccad 100644 --- a/src/services/database/roles.rs +++ b/src/services/database/roles.rs @@ -43,19 +43,16 @@ impl Role { space_id: space.id.clone(), scope_id: "global".to_string(), // FIXME: scope_id }; - roles.insert_one(role.clone(), None).await?; + roles.insert_one(role.clone()).await?; Ok(role) } pub async fn delete(&self) -> Result<()> { let roles = super::get_database().collection::("roles"); roles - .delete_one( - doc! { - "id": &self.id, - }, - None, - ) + .delete_one(doc! { + "id": &self.id, + }) .await?; Ok(()) } @@ -63,12 +60,9 @@ impl Role { pub async fn get(id: &String) -> Result { let roles = super::get_database().collection::("roles"); let role = roles - .find_one( - doc! { - "id": &id, - }, - None, - ) + .find_one(doc! { + "id": &id, + }) .await?; match role { Some(role) => Ok(role), @@ -90,7 +84,6 @@ impl Role { "color": bson::to_bson(&color)?, }, }, - None, ) .await?; match role { diff --git a/src/services/database/scopes.rs b/src/services/database/scopes.rs index 6b28211..89dee1d 100644 --- a/src/services/database/scopes.rs +++ b/src/services/database/scopes.rs @@ -20,17 +20,14 @@ impl Scope { pub async fn create(name: String) -> Result<()> { let scopes = super::get_database().collection::("scopes"); scopes - .insert_one( - Scope { - id: Ulid::new().to_string(), - name, - disabled: false, - nexuses: Vec::new(), - channels: Vec::new(), - users: Vec::new(), - }, - None, - ) + .insert_one(Scope { + id: Ulid::new().to_string(), + name, + disabled: false, + nexuses: Vec::new(), + channels: Vec::new(), + users: Vec::new(), + }) .await?; Ok(()) } @@ -43,12 +40,9 @@ impl Scope { ) -> Result { let scopes = super::get_database().collection::("scopes"); let scope = scopes - .find_one( - doc! { - "id": &self.id - }, - None, - ) + .find_one(doc! { + "id": &self.id + }) .await?; match scope { Some(mut s) => { @@ -80,12 +74,9 @@ impl Scope { } else { let scopes = super::get_database().collection::("scopes"); scopes - .delete_one( - doc! { - "id": &self.id - }, - None, - ) + .delete_one(doc! { + "id": &self.id + }) .await?; Ok(true) } diff --git a/src/services/database/spaces.rs b/src/services/database/spaces.rs index 9c31f1a..d738bfc 100644 --- a/src/services/database/spaces.rs +++ b/src/services/database/spaces.rs @@ -41,55 +41,40 @@ impl Space { scope_id: scope_id.unwrap_or_else(|| "global".to_owned()), base_permissions: 0x16, }; - spaces.insert_one(space.clone(), None).await?; + spaces.insert_one(space.clone()).await?; Ok(space) } pub async fn delete(&self) -> Result<()> { let spaces = super::get_database().collection::("spaces"); spaces - .delete_one( - doc! { - "id": &self.id, - }, - None, - ) + .delete_one(doc! { + "id": &self.id, + }) .await?; let channels = super::get_database().collection::("channels"); channels - .delete_many( - doc! { - "space_id": &self.id, - }, - None, - ) + .delete_many(doc! { + "space_id": &self.id, + }) .await?; let invites = super::get_database().collection::("invites"); invites - .delete_many( - doc! { - "space_id": &self.id, - }, - None, - ) + .delete_many(doc! { + "space_id": &self.id, + }) .await?; let roles = super::get_database().collection::("roles"); roles - .delete_many( - doc! { - "space_id": &self.id, - }, - None, - ) + .delete_many(doc! { + "space_id": &self.id, + }) .await?; let members = super::get_database().collection::("members"); members - .delete_many( - doc! { - "space_id": &self.id, - }, - None, - ) + .delete_many(doc! { + "space_id": &self.id, + }) .await?; Ok(()) } @@ -97,12 +82,9 @@ impl Space { pub async fn get(id: &String) -> Result { let spaces = super::get_database().collection::("spaces"); let space = spaces - .find_one( - doc! { - "id": id, - }, - None, - ) + .find_one(doc! { + "id": id, + }) .await?; if let Some(space) = space { Ok(space) @@ -122,7 +104,6 @@ impl Space { "members": id, }, }, - None, ) .await?; Ok(()) @@ -139,7 +120,6 @@ impl Space { "members": id, }, }, - None, ) .await?; Ok(()) @@ -169,7 +149,6 @@ impl Space { doc! { "$set": update, }, - None, ) .await?; match space { @@ -189,7 +168,6 @@ impl Space { "owner": user_id, }, }, - None, ) .await?; Ok(()) @@ -199,12 +177,9 @@ impl Space { let database = super::get_database(); let channels: Vec = database .collection::("channels") - .find( - doc! { - "space_id": &self.id, - }, - None, - ) + .find(doc! { + "space_id": &self.id, + }) .await? .try_collect() .await?; @@ -215,13 +190,10 @@ impl Space { let database = super::get_database(); let channel = database .collection::("channels") - .find_one( - doc! { - "id": id, - "space_id": &self.id, - }, - None, - ) + .find_one(doc! { + "id": id, + "space_id": &self.id, + }) .await?; match channel { Some(channel) => Ok(channel), @@ -232,12 +204,9 @@ impl Space { pub async fn get_roles(&self) -> Result> { let roles = super::get_database().collection::("roles"); let roles = roles - .find( - doc! { - "space_id": &self.id, - }, - None, - ) + .find(doc! { + "space_id": &self.id, + }) .await?; Ok(roles.try_collect().await?) } diff --git a/src/services/database/users.rs b/src/services/database/users.rs index 1c354d5..64d7aea 100644 --- a/src/services/database/users.rs +++ b/src/services/database/users.rs @@ -52,14 +52,11 @@ impl User { pub async fn get_spaces(&self) -> Result> { let spaces = super::get_database().collection::("spaces"); let spaces = spaces - .find( - doc! { - "members": { - "$in": [&self.id], - }, + .find(doc! { + "members": { + "$in": [&self.id], }, - None, - ) + }) .await?; let mut spaces: Vec = spaces .filter_map(|space| async { space.ok() }) @@ -72,15 +69,12 @@ impl User { pub async fn in_space(&self, space_id: &String) -> Result { let spaces = super::get_database().collection::("spaces"); let space = spaces - .find_one( - doc! { - "id": space_id, - "members": { - "$in": [&self.id], - }, + .find_one(doc! { + "id": space_id, + "members": { + "$in": [&self.id], }, - None, - ) + }) .await?; Ok(space.is_some()) } @@ -113,12 +107,9 @@ impl User { pub async fn get(id: &String) -> Result { let users = super::get_database().collection::("users"); let user = users - .find_one( - doc! { - "id": id - }, - None, - ) + .find_one(doc! { + "id": id + }) .await?; match user { Some(user) => Ok(user), @@ -136,7 +127,7 @@ impl User { online: None, presence: None, }; - users.insert_one(user.clone(), None).await?; + users.insert_one(user.clone()).await?; Ok(user) } @@ -159,7 +150,7 @@ impl User { "$set": { "affinities.$[affinity].relationship": bson::to_bson(&Relationship::Friend)? } - }, + }).with_options( Some(mongodb::options::UpdateOptions::builder() .array_filters(vec![doc! { "affinity.id": &friend_id @@ -176,7 +167,7 @@ impl User { "$set": { "affinities.$[affinity].relationship": bson::to_bson(&Relationship::Friend)? } - }, + }).with_options( Some(mongodb::options::UpdateOptions::builder() .array_filters(vec![doc! { "affinity.id": &self.id @@ -201,7 +192,6 @@ impl User { } } }, - None, ) .await?; users @@ -217,7 +207,6 @@ impl User { } } }, - None, ) .await?; Ok(()) @@ -237,7 +226,6 @@ impl User { "uses": &self.id, } }, - None, ) .await?; let invite = match invite { @@ -245,12 +233,9 @@ impl User { None => return Err(Error::NotFound), }; let space = spaces - .find_one( - doc! { - "id": invite.space_id, - }, - None, - ) + .find_one(doc! { + "id": invite.space_id, + }) .await?; let space = match space { Some(space) => space, @@ -262,24 +247,21 @@ impl User { pub async fn get_channels(&self) -> Result> { let channels = super::get_database().collection::("channels"); let channels = channels - .find( - doc! { - "$or": [ - { - "initiator_id": &self.id - }, - { - "target_id": &self.id - }, - { - "members": { - "$in": [&self.id], - } + .find(doc! { + "$or": [ + { + "initiator_id": &self.id + }, + { + "target_id": &self.id + }, + { + "members": { + "$in": [&self.id], } - ] - }, - None, - ) + } + ] + }) .await?; let channels: Vec = channels .filter_map(|channel| async { channel.ok() }) diff --git a/src/services/webrtc.rs b/src/services/webrtc.rs index eed7c7c..c47332c 100644 --- a/src/services/webrtc.rs +++ b/src/services/webrtc.rs @@ -170,12 +170,10 @@ impl FromRedisValue for ActiveCall { let data = deserialize(bytes); match data { Ok(data) => Ok(data), - Err(_) => { - Err(redis::RedisError::from(( - redis::ErrorKind::TypeError, - "Deserialization error", - ))) - } + Err(_) => Err(redis::RedisError::from(( + redis::ErrorKind::TypeError, + "Deserialization error", + ))), } } @@ -194,12 +192,10 @@ impl FromRedisValue for NodeEvent { let data = deserialize(bytes); match data { Ok(data) => Ok(data), - Err(_) => { - Err(redis::RedisError::from(( - redis::ErrorKind::TypeError, - "Deserialization error", - ))) - } + Err(_) => Err(redis::RedisError::from(( + redis::ErrorKind::TypeError, + "Deserialization error", + ))), } } @@ -228,11 +224,7 @@ pub struct RtcAuthorization { } impl ActiveCall { - pub async fn create( - space: &String, - channel: &String, - initiator: &str, - ) -> Result { + pub async fn create(space: &String, channel: &String, initiator: &str) -> Result { let mut redis = get_connection().await; let call = Self::get_in_channel(space, channel).await?; if call.is_some() {