From 98b474edaf5767f638cf15e9bb67797462136611 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Wed, 31 Jul 2019 13:53:44 -0700 Subject: [PATCH] [AltStore] Treats partial-failure refresh attempts as failures --- AltStore/Model/RefreshAttempt.swift | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/AltStore/Model/RefreshAttempt.swift b/AltStore/Model/RefreshAttempt.swift index dbd77cd7..fede79f9 100644 --- a/AltStore/Model/RefreshAttempt.swift +++ b/AltStore/Model/RefreshAttempt.swift @@ -22,20 +22,28 @@ class RefreshAttempt: NSManagedObject, Fetchable super.init(entity: entity, insertInto: context) } - init(identifier: String, result: Result, context: NSManagedObjectContext) + init(identifier: String, result: Result<[String: Result], Error>, context: NSManagedObjectContext) { super.init(entity: RefreshAttempt.entity(), insertInto: context) self.identifier = identifier self.date = Date() - switch result + do { - case .success: + let results = try result.get() + + for (_, result) in results + { + guard case let .failure(error) = result else { continue } + throw error + } + self.isSuccess = true self.errorDescription = nil - - case .failure(let error): + } + catch + { self.isSuccess = false self.errorDescription = error.localizedDescription }