diff --git a/SessionMessagingKit/Jobs/Types/ExpirationUpdateJob.swift b/SessionMessagingKit/Jobs/Types/ExpirationUpdateJob.swift index 871fdc837..77e3584a3 100644 --- a/SessionMessagingKit/Jobs/Types/ExpirationUpdateJob.swift +++ b/SessionMessagingKit/Jobs/Types/ExpirationUpdateJob.swift @@ -90,6 +90,32 @@ public enum ExpirationUpdateJob: JobExecutor { } ) } + + public static func updateExpirationIfNeeded(_ db: Database, interactionId: Int64) { + guard + let interacion: Interaction = try? Interaction.fetchOne(db, id: interactionId), + let startedAtMs: TimeInterval = interacion.expiresStartedAtMs, + let expiresInSeconds: TimeInterval = interacion.expiresInSeconds, + let serverHash: String = interacion.serverHash + else { + return + } + let threadId: String = interacion.threadId + let expirationTimestampMs: Int64 = Int64(startedAtMs + expiresInSeconds * 1000) + + JobRunner.add( + db, + job: Job( + variant: .expirationUpdate, + behaviour: .runOnce, + threadId: threadId, + details: ExpirationUpdateJob.Details( + serverHashes: [ serverHash ], + expirationTimestampMs: expirationTimestampMs + ) + ) + ) + } } // MARK: - ExpirationUpdateJob.Details diff --git a/SessionMessagingKit/Sending & Receiving/MessageSender.swift b/SessionMessagingKit/Sending & Receiving/MessageSender.swift index 6c97dc685..02115bdea 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageSender.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageSender.swift @@ -945,6 +945,10 @@ public final class MessageSender { ), openGroupServerMessageId: message.openGroupServerMessageId.map { Int64($0) } ).update(db) + + if interaction.isExpiringMessage { + + } } // Mark the message as sent