From 063214dea3e831590107abd736ea5144f6606121 Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Fri, 6 Nov 2020 16:18:08 +1100 Subject: [PATCH] Implement VisibleMessage.toProto() --- .../Visible Message/VisibleMessage.swift | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/SessionMessagingKit/Messages/Visible Message/VisibleMessage.swift b/SessionMessagingKit/Messages/Visible Message/VisibleMessage.swift index c57093b60..834a992cf 100644 --- a/SessionMessagingKit/Messages/Visible Message/VisibleMessage.swift +++ b/SessionMessagingKit/Messages/Visible Message/VisibleMessage.swift @@ -1,3 +1,4 @@ +import SessionUtilities @objc(SNVisibleMessage) public final class VisibleMessage : Message { @@ -29,7 +30,7 @@ public final class VisibleMessage : Message { guard let dataMessage = proto.dataMessage else { return nil } let result = VisibleMessage() result.text = dataMessage.body - result.attachmentIDs = [] // TODO + result.attachmentIDs = [] // TODO: Attachments if let quoteProto = dataMessage.quote, let quote = Quote.fromProto(quoteProto) { result.quote = quote } if let linkPreviewProto = dataMessage.preview.first, let linkPreview = LinkPreview.fromProto(linkPreviewProto) { result.linkPreview = linkPreview } // TODO: Contact @@ -38,6 +39,24 @@ public final class VisibleMessage : Message { } public override func toProto() -> SNProtoContent? { - return nil + let proto = SNProtoContent.builder() + let dataMessage: SNProtoDataMessage.SNProtoDataMessageBuilder + if let profile = profile, let profileProto = profile.toProto() { + dataMessage = profileProto.asBuilder() + } else { + dataMessage = SNProtoDataMessage.builder() + } + if let text = text { dataMessage.setBody(text) } + // TODO: Attachments + if let quote = quote, let quoteProto = quote.toProto() { dataMessage.setQuote(quoteProto) } + if let linkPreview = linkPreview, let linkPreviewProto = linkPreview.toProto() { dataMessage.setPreview([ linkPreviewProto ]) } + // TODO: Contact + do { + proto.setDataMessage(try dataMessage.build()) + return try proto.build() + } catch { + SNLog("Couldn't construct visible message proto from: \(self).") + return nil + } } }