From 89ae37cea5042ee83ce3993074a467b8798e55c5 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Sat, 30 Mar 2019 08:17:46 -0600 Subject: [PATCH] avoid crashing optional unwrapping introduced by Swift5 migration --- Signal/src/util/Backup/OWSBackupAPI.swift | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/Signal/src/util/Backup/OWSBackupAPI.swift b/Signal/src/util/Backup/OWSBackupAPI.swift index 425f9bab6..777d96ee0 100644 --- a/Signal/src/util/Backup/OWSBackupAPI.swift +++ b/Signal/src/util/Backup/OWSBackupAPI.swift @@ -484,17 +484,13 @@ import PromiseKit } public class func downloadDataFromCloud(recordName: String) -> Promise { - return downloadFromCloud(recordName: recordName, remainingRetries: maxRetries) - .then { (asset) -> Promise in - do { - let data = try Data(contentsOf: asset.fileURL!) - return Promise.value(data) - } catch { - Logger.error("couldn't load asset file: \(error).") - return Promise(error: invalidServiceResponseError()) + .map { (asset) -> Data in + guard let fileURL = asset.fileURL else { + throw invalidServiceResponseError() } + return try Data(contentsOf: fileURL) } } @@ -510,14 +506,11 @@ import PromiseKit return downloadFromCloud(recordName: recordName, remainingRetries: maxRetries) - .then { (asset) -> Promise in - do { - try FileManager.default.copyItem(at: asset.fileURL!, to: toFileUrl) - return Promise.value(()) - } catch { - Logger.error("couldn't copy asset file: \(error).") - return Promise(error: invalidServiceResponseError()) + .done { asset in + guard let fileURL = asset.fileURL else { + throw invalidServiceResponseError() } + try FileManager.default.copyItem(at: fileURL, to: toFileUrl) } }