From cf2d223ea46a5675b8cb71076f735dd05d8cdd44 Mon Sep 17 00:00:00 2001 From: Harry <109690906+harry-signal@users.noreply.github.com> Date: Fri, 30 Aug 2024 15:49:48 -0700 Subject: [PATCH] Respect partial errors everywhere --- ...ssageBackupTSMessageContentsArchiver.swift | 32 +++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/SignalServiceKit/MessageBackup/Archivers/ChatItem/MessageBackupTSMessageContentsArchiver.swift b/SignalServiceKit/MessageBackup/Archivers/ChatItem/MessageBackupTSMessageContentsArchiver.swift index 70ffd45a6f..f23a69d809 100644 --- a/SignalServiceKit/MessageBackup/Archivers/ChatItem/MessageBackupTSMessageContentsArchiver.swift +++ b/SignalServiceKit/MessageBackup/Archivers/ChatItem/MessageBackupTSMessageContentsArchiver.swift @@ -520,7 +520,11 @@ class MessageBackupTSMessageContentsArchiver: MessageBackupProtoArchiver { return archiveInteractionResult } - return .success(proto) + if partialErrors.isEmpty { + return .success(proto) + } else { + return .partialFailure(proto, partialErrors) + } } // MARK: - @@ -1004,7 +1008,7 @@ class MessageBackupTSMessageContentsArchiver: MessageBackupProtoArchiver { let messageBodyResult = restoreMessageBody(text, chatItemId: chatItemId) switch messageBodyResult { case .success(let body): - return .success(.text(.init( + let contents = MessageBackup.RestoredMessageContents.text(.init( body: body, quotedMessage: quotedMessage, linkPreview: linkPreview, @@ -1013,8 +1017,13 @@ class MessageBackupTSMessageContentsArchiver: MessageBackupProtoArchiver { bodyAttachments: standardMessage.attachments, quotedMessageThumbnail: quotedMessageThumbnail, linkPreviewImage: linkPreviewAttachment - ))) - case .partialRestore(let body, let partialErrors): + )) + if partialErrors.isEmpty { + return .success(contents) + } else { + return .partialRestore(contents, partialErrors) + } + case .partialRestore(let body, let messageBodyErrors): return .partialRestore( .text(.init( body: body, @@ -1026,10 +1035,10 @@ class MessageBackupTSMessageContentsArchiver: MessageBackupProtoArchiver { quotedMessageThumbnail: quotedMessageThumbnail, linkPreviewImage: linkPreviewAttachment )), - partialErrors + partialErrors + messageBodyErrors ) - case .messageFailure(let errors): - return .messageFailure(errors) + case .messageFailure(let messageBodyErrors): + return .messageFailure(partialErrors + messageBodyErrors) } } @@ -1357,11 +1366,16 @@ class MessageBackupTSMessageContentsArchiver: MessageBackupProtoArchiver { avatar = nil } - return .success(.contactShare(.init( + let contents = MessageBackup.RestoredMessageContents.contactShare(.init( contact: contact, avatarAttachment: avatar, reactions: contactMessage.reactions - ))) + )) + if partialErrors.isEmpty { + return .success(contents) + } else { + return .partialRestore(contents, partialErrors) + } } // MARK: -