implement the new approach to sync disappearing after read status across devices

pull/941/head
ryanzhao 1 year ago
parent 2b85c0fde0
commit 00e468fcce

@ -105,20 +105,22 @@ public extension DisappearingMessagesJob {
of: messageHashes of: messageHashes
) )
} }
.map { response in .sinkUntilComplete (
Storage.shared.writeAsync { db in receiveValue: { response in
try response.1.expiries.forEach { hash, exipreAtMs in Storage.shared.writeAsync { db in
let expiresInSeconds: TimeInterval = TimeInterval((exipreAtMs - UInt64(lastReadTimestampMs)) / 1000) try response.1.expiries.forEach { hash, exipreAtMs in
let expiresInSeconds: TimeInterval = TimeInterval((exipreAtMs - UInt64(lastReadTimestampMs)) / 1000)
_ = try Interaction
.filter(Interaction.Columns.serverHash == hash) _ = try Interaction
.updateAll( .filter(Interaction.Columns.serverHash == hash)
db, .updateAll(
Interaction.Columns.expiresInSeconds.set(to: expiresInSeconds) db,
) Interaction.Columns.expiresInSeconds.set(to: expiresInSeconds)
)
}
} }
} }
} )
return updateNextRunIfNeeded(db) return updateNextRunIfNeeded(db)
} }

Loading…
Cancel
Save