From 8bb5fb25ddec3d6bafaf6ab0ae08bb1efcabf3d7 Mon Sep 17 00:00:00 2001 From: Paul Date: Sat, 11 Sep 2021 17:46:20 +0100 Subject: [PATCH] Fix bot logon, should do nested match. Add comment to migrations. Fix attachment deletes on messages. --- src/database/entities/message.rs | 4 ++-- src/database/migrations/scripts.rs | 2 ++ src/notifications/websocket.rs | 16 ++++------------ 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/database/entities/message.rs b/src/database/entities/message.rs index aa286bdd..dcc36506 100644 --- a/src/database/entities/message.rs +++ b/src/database/entities/message.rs @@ -467,7 +467,7 @@ impl Message { let attachment_ids: Vec = attachments.iter().map(|f| f.id.to_string()).collect(); get_collection("attachments") - .update_one( + .update_many( doc! { "_id": { "$in": attachment_ids @@ -482,7 +482,7 @@ impl Message { ) .await .map_err(|_| Error::DatabaseError { - operation: "update_one", + operation: "update_many", with: "attachment", })?; } diff --git a/src/database/migrations/scripts.rs b/src/database/migrations/scripts.rs index bfca19dc..8d72f4df 100644 --- a/src/database/migrations/scripts.rs +++ b/src/database/migrations/scripts.rs @@ -284,6 +284,8 @@ pub async fn run_migrations(revision: i32) -> i32 { .unwrap(); } + // Need to migrate fields on attachments, change `user_id`, `object_id`, etc to `parent`. + // Reminder to update LATEST_REVISION when adding new migrations. LATEST_REVISION } diff --git a/src/notifications/websocket.rs b/src/notifications/websocket.rs index 6f615060..529da091 100644 --- a/src/notifications/websocket.rs +++ b/src/notifications/websocket.rs @@ -169,23 +169,15 @@ async fn accept(stream: TcpStream) { } } - let id = if let Ok(result) = + let id = if let Ok(Some(session)) = Session::find_one(&get_db(), doc! { "token": &auth.token }, None).await { - if let Some(session) = result { - Some(session.user_id) - } else { - None - } - } else if let Ok(result) = get_collection("bots") + Some(session.user_id) + } else if let Ok(Some(bot)) = get_collection("bots") .find_one(doc! { "token": auth.token }, None) .await { - if let Some(bot) = result { - Some(bot.get_str("_id").unwrap().to_string()) - } else { - None - } + Some(bot.get_str("_id").unwrap().to_string()) } else { None };