mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
WIP: persist reaction locally
This commit is contained in:
parent
a742e97d00
commit
19a1edb33a
|
@ -302,6 +302,19 @@ public extension Message {
|
|||
throw MessageReceiverError.invalidMessage
|
||||
}
|
||||
|
||||
if let reactions = message.reactions {
|
||||
try processRawReceivedReactions(
|
||||
db,
|
||||
reactions: reactions,
|
||||
serverExpirationTimestamp: nil,
|
||||
serverHash: nil,
|
||||
openGroupId: openGroupId,
|
||||
openGroupMessageServerId: message.id,
|
||||
openGroupServerPublicKey: openGroupServerPublicKey,
|
||||
dependencies: dependencies
|
||||
)
|
||||
}
|
||||
|
||||
return try processRawReceivedMessage(
|
||||
db,
|
||||
envelope: envelope,
|
||||
|
@ -348,6 +361,34 @@ public extension Message {
|
|||
)
|
||||
}
|
||||
|
||||
private static func processRawReceivedReactions(
|
||||
_ db: Database,
|
||||
reactions: [String:OpenGroupAPI.Message.Reaction],
|
||||
serverExpirationTimestamp: TimeInterval?,
|
||||
serverHash: String?,
|
||||
openGroupId: String? = nil,
|
||||
openGroupMessageServerId: Int64? = nil,
|
||||
openGroupServerPublicKey: String? = nil,
|
||||
dependencies: SMKDependencies = SMKDependencies()
|
||||
) throws {
|
||||
guard let openGroupMessageServerId = openGroupMessageServerId else { return }
|
||||
for (encodedEmoji, rawReaction) in reactions {
|
||||
if let emoji = encodedEmoji.removingPercentEncoding,
|
||||
rawReaction.count > 0,
|
||||
let reactors = rawReaction.reactors?.joined(separator: ",")
|
||||
{
|
||||
try Reaction(
|
||||
interactionId: openGroupMessageServerId,
|
||||
serverHash: nil,
|
||||
timestampMs: Int64(floor((Date().timeIntervalSince1970 * 1000))),
|
||||
authorId: reactors,
|
||||
emoji: emoji,
|
||||
count: rawReaction.count
|
||||
).insert(db)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static func processRawReceivedMessage(
|
||||
_ db: Database,
|
||||
envelope: SNProtoEnvelope,
|
||||
|
|
Loading…
Reference in a new issue