From 7d3ad10aa072b85ae5f30cf285eff5d5a49e767c Mon Sep 17 00:00:00 2001 From: Satindar Dhillon Date: Tue, 3 May 2022 11:47:30 -0700 Subject: [PATCH] treat unknown link content status as succeeded (since older items don't return a status) --- .../Queries/ArticleContentQuery.swift | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/apple/OmnivoreKit/Sources/Services/DataService/Queries/ArticleContentQuery.swift b/apple/OmnivoreKit/Sources/Services/DataService/Queries/ArticleContentQuery.swift index 217010def..f2beed079 100644 --- a/apple/OmnivoreKit/Sources/Services/DataService/Queries/ArticleContentQuery.swift +++ b/apple/OmnivoreKit/Sources/Services/DataService/Queries/ArticleContentQuery.swift @@ -54,8 +54,8 @@ extension DataService { } switch fetchedContent.contentStatus { - case .failed, .unknown: - throw BasicError.message(messageText: "content fetch failed") + case .failed: + throw BasicError.message(messageText: "content processing failed") case .processing: do { let retryDelayInNanoSeconds = UInt64(requestCount * 2 * 1_000_000_000) @@ -65,12 +65,16 @@ extension DataService { } catch { throw BasicError.message(messageText: "content fetch failed") } - case .succeeded: + case .succeeded, .unknown: return fetchedContent } } - public func articleContent(username: String, itemID: String, useCache: Bool) async throws -> ArticleContent { + public func articleContent( + username: String, + itemID: String, + useCache: Bool + ) async throws -> ArticleContent { struct ArticleProps { let htmlContent: String let highlights: [InternalHighlight] @@ -122,7 +126,11 @@ extension DataService { switch payload.data { case let .success(result: result): - if let status = result.contentStatus, status == .succeeded { + // Default to suceeded since older links will return a nil status + // (but the content is almost always there) + let status = result.contentStatus ?? .succeeded + + if status == .succeeded { self?.persistArticleContent( htmlContent: result.htmlContent, itemID: itemID,