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

pull/676/head
Ryan Zhao 2 years ago
parent 6d94866110
commit f9c2a2ce99

@ -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)
}

@ -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)

Loading…
Cancel
Save