From f9c2a2ce99b174fac0eef5cea6e2713f920827af Mon Sep 17 00:00:00 2001 From: Ryan Zhao Date: Thu, 25 Aug 2022 11:12:22 +1000 Subject: [PATCH] tweak: fix an issue where we may delete the wrong open group message and update reactions to wrong open group messages in other threads with the same server id --- SessionMessagingKit/Open Groups/OpenGroupManager.swift | 2 ++ SessionMessagingKit/Sending & Receiving/MessageReceiver.swift | 2 ++ 2 files changed, 4 insertions(+) diff --git a/SessionMessagingKit/Open Groups/OpenGroupManager.swift b/SessionMessagingKit/Open Groups/OpenGroupManager.swift index 0f532bb9b..33fee96cc 100644 --- a/SessionMessagingKit/Open Groups/OpenGroupManager.swift +++ b/SessionMessagingKit/Open Groups/OpenGroupManager.swift @@ -594,6 +594,7 @@ public final class OpenGroupManager: NSObject { try MessageReceiver.handleOpenGroupReactions( db, + threadId: openGroup.threadId, openGroupMessageServerId: message.id, openGroupReactions: reactions ) @@ -608,6 +609,7 @@ public final class OpenGroupManager: NSObject { guard !messageServerIdsToRemove.isEmpty else { return } _ = try? Interaction + .filter(Interaction.Columns.threadId == openGroup.threadId) .filter(messageServerIdsToRemove.contains(Interaction.Columns.openGroupServerMessageId)) .deleteAll(db) } diff --git a/SessionMessagingKit/Sending & Receiving/MessageReceiver.swift b/SessionMessagingKit/Sending & Receiving/MessageReceiver.swift index 20141c74b..2e427fda1 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageReceiver.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageReceiver.swift @@ -249,11 +249,13 @@ public enum MessageReceiver { public static func handleOpenGroupReactions( _ db: Database, + threadId: String, openGroupMessageServerId: Int64, openGroupReactions: [Reaction] ) throws { guard let interactionId: Int64 = try? Interaction .select(.id) + .filter(Interaction.Columns.threadId == threadId) .filter(Interaction.Columns.openGroupServerMessageId == openGroupMessageServerId) .asRequest(of: Int64.self) .fetchOne(db)