diff --git a/SessionMessagingKit/Messages/Message.swift b/SessionMessagingKit/Messages/Message.swift index 5e67d53fb..17d97149c 100644 --- a/SessionMessagingKit/Messages/Message.swift +++ b/SessionMessagingKit/Messages/Message.swift @@ -67,6 +67,21 @@ public class Message: Codable { public func toProto(_ db: Database) -> SNProtoContent? { preconditionFailure("toProto(_:) is abstract and must be overridden.") } + + public func setDisappearingMessagesConfigurationIfNeeded(_ db: Database, on proto: SNProtoContent.SNProtoContentBuilder) throws { + guard + let threadId: String = threadId, + let disappearingMessagesConfiguration = try? DisappearingMessagesConfiguration.fetchOne(db, id: threadId) + else { return } + + proto.setExpirationTimer(UInt32(disappearingMessagesConfiguration.durationSeconds)) + + if disappearingMessagesConfiguration.isEnabled, + let type = disappearingMessagesConfiguration.type + { + proto.setExpirationType(type.toProto()) + } + } public func setGroupContextIfNeeded(_ db: Database, on dataMessage: SNProtoDataMessage.SNProtoDataMessageBuilder) throws { guard diff --git a/SessionMessagingKit/Messages/Visible Messages/VisibleMessage.swift b/SessionMessagingKit/Messages/Visible Messages/VisibleMessage.swift index 88cbaa3c2..2d5a82a33 100644 --- a/SessionMessagingKit/Messages/Visible Messages/VisibleMessage.swift +++ b/SessionMessagingKit/Messages/Visible Messages/VisibleMessage.swift @@ -184,16 +184,11 @@ public final class VisibleMessage: Message { } // DisappearingMessagesConfiguration - if let threadId = self.threadId, - let disappearingMessagesConfiguration = try? DisappearingMessagesConfiguration.fetchOne(db, id: threadId) - { - proto.setExpirationTimer(UInt32(disappearingMessagesConfiguration.durationSeconds)) - - if disappearingMessagesConfiguration.isEnabled, - let type = disappearingMessagesConfiguration.type - { - proto.setExpirationType(type.toProto()) - } + do { + try setDisappearingMessagesConfigurationIfNeeded(db, on: proto) + } catch { + SNLog("Couldn't construct visible message proto from: \(self).") + return nil } // Group context