diff --git a/crates/core/database/src/models/channels/model.rs b/crates/core/database/src/models/channels/model.rs index 082acaa9..cd065818 100644 --- a/crates/core/database/src/models/channels/model.rs +++ b/crates/core/database/src/models/channels/model.rs @@ -417,13 +417,13 @@ impl Channel { } /// Clone this channel's id - pub fn id(&self) -> String { + pub fn id(&self) -> &str { match self { Channel::DirectMessage { id, .. } | Channel::Group { id, .. } | Channel::SavedMessages { id, .. } | Channel::TextChannel { id, .. } - | Channel::VoiceChannel { id, .. } => id.clone(), + | Channel::VoiceChannel { id, .. } => id, } } diff --git a/crates/core/database/src/models/channels/ops/mongodb.rs b/crates/core/database/src/models/channels/ops/mongodb.rs index 9344d67b..5f847dd7 100644 --- a/crates/core/database/src/models/channels/ops/mongodb.rs +++ b/crates/core/database/src/models/channels/ops/mongodb.rs @@ -266,7 +266,7 @@ impl AbstractChannels for MongoDb { .await?; // Delete the channel itself - query!(self, delete_one_by_id, COL, &channel.id()).map(|_| ()) + query!(self, delete_one_by_id, COL, channel.id()).map(|_| ()) } } diff --git a/crates/core/database/src/models/channels/ops/reference.rs b/crates/core/database/src/models/channels/ops/reference.rs index a2c849a4..7d5c9a59 100644 --- a/crates/core/database/src/models/channels/ops/reference.rs +++ b/crates/core/database/src/models/channels/ops/reference.rs @@ -11,7 +11,7 @@ impl AbstractChannels for ReferenceDb { /// Insert a new channel in the database async fn insert_channel(&self, channel: &Channel) -> Result<()> { let mut channels = self.channels.lock().await; - if let Entry::Vacant(entry) = channels.entry(channel.id()) { + if let Entry::Vacant(entry) = channels.entry(channel.id().to_string()) { entry.insert(channel.clone()); Ok(()) } else { @@ -148,7 +148,7 @@ impl AbstractChannels for ReferenceDb { // Delete a channel async fn delete_channel(&self, channel: &Channel) -> Result<()> { let mut channels = self.channels.lock().await; - if channels.remove(&channel.id()).is_some() { + if channels.remove(channel.id()).is_some() { Ok(()) } else { Err(create_error!(NotFound)) diff --git a/crates/core/database/src/models/messages/model.rs b/crates/core/database/src/models/messages/model.rs index e7947764..41cc0b3d 100644 --- a/crates/core/database/src/models/messages/model.rs +++ b/crates/core/database/src/models/messages/model.rs @@ -292,7 +292,7 @@ impl Message { let message_id = Ulid::new().to_string(); let mut message = Message { id: message_id.clone(), - channel: channel.id(), + channel: channel.id().to_string(), masquerade: data.masquerade.map(|masquerade| masquerade.into()), interactions: data .interactions @@ -479,7 +479,7 @@ impl Message { PushNotification::from( self.clone().into_model(None, None), Some(author), - &channel.id(), + channel.id(), ) .await, ) diff --git a/crates/core/database/src/models/servers/model.rs b/crates/core/database/src/models/servers/model.rs index 75a022cd..67c4daed 100644 --- a/crates/core/database/src/models/servers/model.rs +++ b/crates/core/database/src/models/servers/model.rs @@ -175,7 +175,7 @@ impl Server { vec![] }; - server.channels = channels.iter().map(|c| c.id()).collect(); + server.channels = channels.iter().map(|c| c.id().to_string()).collect(); db.insert_server(&server).await?; Ok((server, channels)) } diff --git a/crates/delta/src/routes/bots/invite.rs b/crates/delta/src/routes/bots/invite.rs index 70e68bb6..120c36da 100644 --- a/crates/delta/src/routes/bots/invite.rs +++ b/crates/delta/src/routes/bots/invite.rs @@ -93,7 +93,9 @@ mod test { .client .post(format!("/bots/{}/invite", bot.id)) .header(ContentType::JSON) - .body(json!(v0::InviteBotDestination::Group { group: group.id() }).to_string()) + .body(json!(v0::InviteBotDestination::Group { + group: group.id().to_string() + }).to_string()) .header(Header::new("x-session-token", session.token.to_string())) .dispatch() .await; @@ -102,8 +104,8 @@ mod test { drop(response); let event = harness - .wait_for_event(&group.id(), |event| match event { - EventV1::ChannelGroupJoin { id, .. } => id == &group.id(), + .wait_for_event(group.id(), |event| match event { + EventV1::ChannelGroupJoin { id, .. } => id == group.id(), _ => false, }) .await; diff --git a/crates/delta/src/routes/channels/channel_ack.rs b/crates/delta/src/routes/channels/channel_ack.rs index e8b1cdae..458ccd1b 100644 --- a/crates/delta/src/routes/channels/channel_ack.rs +++ b/crates/delta/src/routes/channels/channel_ack.rs @@ -69,7 +69,7 @@ mod test { let event = harness .wait_for_event(&format!("{}!", user.id), |event| match event { - EventV1::ChannelAck { id, .. } => id == &group.id(), + EventV1::ChannelAck { id, .. } => id == group.id(), _ => false, }) .await; diff --git a/crates/delta/src/routes/channels/channel_delete.rs b/crates/delta/src/routes/channels/channel_delete.rs index 39b5ae7e..ae09ee70 100644 --- a/crates/delta/src/routes/channels/channel_delete.rs +++ b/crates/delta/src/routes/channels/channel_delete.rs @@ -82,8 +82,8 @@ mod test { drop(response); harness - .wait_for_event(&group.id(), |event| match event { - EventV1::ChannelDelete { id, .. } => id == &group.id(), + .wait_for_event(group.id(), |event| match event { + EventV1::ChannelDelete { id, .. } => id == group.id(), _ => false, }) .await; diff --git a/crates/delta/src/routes/channels/group_add_member.rs b/crates/delta/src/routes/channels/group_add_member.rs index 6434ca53..16ee84c7 100644 --- a/crates/delta/src/routes/channels/group_add_member.rs +++ b/crates/delta/src/routes/channels/group_add_member.rs @@ -102,8 +102,8 @@ mod test { .await; let event = harness - .wait_for_event(&group.id(), |event| match event { - EventV1::ChannelGroupJoin { id, .. } => id == &group.id(), + .wait_for_event(group.id(), |event| match event { + EventV1::ChannelGroupJoin { id, .. } => id == group.id(), _ => false, }) .await; @@ -113,7 +113,7 @@ mod test { _ => unreachable!(), }; - let message = harness.wait_for_message(&group.id()).await; + let message = harness.wait_for_message(group.id()).await; assert_eq!( message.system, diff --git a/crates/delta/src/routes/channels/group_remove_member.rs b/crates/delta/src/routes/channels/group_remove_member.rs index 185d0e26..3a6f00ef 100644 --- a/crates/delta/src/routes/channels/group_remove_member.rs +++ b/crates/delta/src/routes/channels/group_remove_member.rs @@ -106,8 +106,8 @@ mod test { .await; let event = harness - .wait_for_event(&group.id(), |event| match event { - EventV1::ChannelGroupJoin { id, .. } => id == &group.id(), + .wait_for_event(group.id(), |event| match event { + EventV1::ChannelGroupJoin { id, .. } => id == group.id(), _ => false, }) .await; @@ -117,7 +117,7 @@ mod test { _ => unreachable!(), }; - let message = harness.wait_for_message(&group.id()).await; + let message = harness.wait_for_message(group.id()).await; assert_eq!( message.system, diff --git a/crates/delta/src/routes/channels/message_clear_reactions.rs b/crates/delta/src/routes/channels/message_clear_reactions.rs index 3142ed6b..268bc843 100644 --- a/crates/delta/src/routes/channels/message_clear_reactions.rs +++ b/crates/delta/src/routes/channels/message_clear_reactions.rs @@ -27,7 +27,7 @@ pub async fn clear_reactions( .throw_if_lacking_channel_permission(ChannelPermission::ManageMessages)?; // Fetch relevant message - let mut message = msg.as_message_in_channel(db, &channel.id()).await?; + let mut message = msg.as_message_in_channel(db, channel.id()).await?; // Clear reactions message diff --git a/crates/delta/src/routes/channels/message_edit.rs b/crates/delta/src/routes/channels/message_edit.rs index 5a77cb92..3662ee63 100644 --- a/crates/delta/src/routes/channels/message_edit.rs +++ b/crates/delta/src/routes/channels/message_edit.rs @@ -43,7 +43,7 @@ pub async fn edit( permissions.throw_if_lacking_channel_permission(ChannelPermission::SendMessage)?; - let mut message = msg.as_message_in_channel(db, &channel.id()).await?; + let mut message = msg.as_message_in_channel(db, channel.id()).await?; if message.author != user.id { return Err(create_error!(CannotEditMessage)); } diff --git a/crates/delta/src/routes/channels/message_pin.rs b/crates/delta/src/routes/channels/message_pin.rs index ef5bf598..5dc318f8 100644 --- a/crates/delta/src/routes/channels/message_pin.rs +++ b/crates/delta/src/routes/channels/message_pin.rs @@ -25,7 +25,7 @@ pub async fn message_pin( .await .throw_if_lacking_channel_permission(ChannelPermission::ManageMessages)?; - let mut message = msg.as_message_in_channel(db, &channel.id()).await?; + let mut message = msg.as_message_in_channel(db, channel.id()).await?; if message.pinned.unwrap_or_default() { return Err(create_error!(AlreadyPinned)) @@ -40,7 +40,7 @@ pub async fn message_pin( id: message.id.clone(), by: user.id.clone() } - .into_message(channel.id()) + .into_message(channel.id().to_string()) .send( db, MessageAuthor::System { @@ -115,7 +115,7 @@ mod test { assert_eq!(response.status(), Status::NoContent); drop(response); - harness.wait_for_event(&channel.id(), |event| { + harness.wait_for_event(channel.id(), |event| { match event { EventV1::Message(message) => { match &message.system { @@ -131,11 +131,11 @@ mod test { } }).await; - harness.wait_for_event(&channel.id(), |event| { + harness.wait_for_event(channel.id(), |event| { match event { EventV1::MessageUpdate { id, channel: channel_id, data, .. } => { assert_eq!(id, &message.id); - assert_eq!(channel_id, &channel.id()); + assert_eq!(channel_id, channel.id()); assert_eq!(data.pinned, Some(true)); true diff --git a/crates/delta/src/routes/channels/message_react.rs b/crates/delta/src/routes/channels/message_react.rs index 11933bc1..5acb00f6 100644 --- a/crates/delta/src/routes/channels/message_react.rs +++ b/crates/delta/src/routes/channels/message_react.rs @@ -26,7 +26,7 @@ pub async fn react_message( .throw_if_lacking_channel_permission(ChannelPermission::React)?; // Fetch relevant message - let message = msg.as_message_in_channel(db, &channel.id()).await?; + let message = msg.as_message_in_channel(db, channel.id()).await?; // Add the reaction message diff --git a/crates/delta/src/routes/channels/message_unpin.rs b/crates/delta/src/routes/channels/message_unpin.rs index 96f33dcb..4084fc11 100644 --- a/crates/delta/src/routes/channels/message_unpin.rs +++ b/crates/delta/src/routes/channels/message_unpin.rs @@ -25,7 +25,7 @@ pub async fn message_unpin( .await .throw_if_lacking_channel_permission(ChannelPermission::ManageMessages)?; - let mut message = msg.as_message_in_channel(db, &channel.id()).await?; + let mut message = msg.as_message_in_channel(db, channel.id()).await?; if !message.pinned.unwrap_or_default() { return Err(create_error!(NotPinned)) @@ -37,7 +37,7 @@ pub async fn message_unpin( id: message.id.clone(), by: user.id.clone() } - .into_message(channel.id()) + .into_message(channel.id().to_string()) .send( db, MessageAuthor::System { @@ -123,7 +123,7 @@ mod test { assert_eq!(response.status(), Status::NoContent); drop(response); - harness.wait_for_event(&channel.id(), |event| { + harness.wait_for_event(channel.id(), |event| { match event { EventV1::Message(message) => { match &message.system { @@ -139,7 +139,7 @@ mod test { } }).await; - harness.wait_for_event(&channel.id(), |event| { + harness.wait_for_event(channel.id(), |event| { match event { EventV1::MessageUpdate { id, clear, .. } => { assert_eq!(&message.id, id); diff --git a/crates/delta/src/routes/channels/message_unreact.rs b/crates/delta/src/routes/channels/message_unreact.rs index 4e2132da..d1692d7b 100644 --- a/crates/delta/src/routes/channels/message_unreact.rs +++ b/crates/delta/src/routes/channels/message_unreact.rs @@ -36,7 +36,7 @@ pub async fn unreact_message( } // Fetch relevant message - let message = msg.as_message_in_channel(db, &channel.id()).await?; + let message = msg.as_message_in_channel(db, channel.id()).await?; // Check if we should wipe all of this reaction if remove_all { diff --git a/crates/delta/src/routes/channels/webhook_create.rs b/crates/delta/src/routes/channels/webhook_create.rs index d6901b1a..a47358da 100644 --- a/crates/delta/src/routes/channels/webhook_create.rs +++ b/crates/delta/src/routes/channels/webhook_create.rs @@ -54,7 +54,7 @@ pub async fn create_webhook( id: webhook_id, name: data.name, avatar, - channel_id: channel.id(), + channel_id: channel.id().to_string(), permissions: *DEFAULT_WEBHOOK_PERMISSIONS, token: Some(nanoid::nanoid!(64)), }; diff --git a/crates/delta/src/routes/channels/webhook_fetch_all.rs b/crates/delta/src/routes/channels/webhook_fetch_all.rs index 1d10ccea..06d94d80 100644 --- a/crates/delta/src/routes/channels/webhook_fetch_all.rs +++ b/crates/delta/src/routes/channels/webhook_fetch_all.rs @@ -25,7 +25,7 @@ pub async fn fetch_webhooks( .throw_if_lacking_channel_permission(ChannelPermission::ViewChannel)?; Ok(Json( - db.fetch_webhooks_for_channel(&channel.id()) + db.fetch_webhooks_for_channel(channel.id()) .await? .into_iter() .map(|v| v.into())