Merge pull request #1363 from kielgillard/1326-missing-data

Adds public logging of the Feedly errors…
This commit is contained in:
Maurice Parker 2019-11-27 09:55:22 -06:00 committed by GitHub
commit 991ecf2a71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 37 additions and 20 deletions

View File

@ -30,7 +30,7 @@ class FeedlyGetStreamContentsOperationTests: XCTestCase {
let service = TestGetStreamContentsService()
let resource = FeedlyCategoryResourceId(id: "user/1234/category/5678")
let getStreamContents = FeedlyGetStreamContentsOperation(account: account, resource: resource, service: service, continuation: nil, newerThan: nil, unreadOnly: nil)
let getStreamContents = FeedlyGetStreamContentsOperation(account: account, resource: resource, service: service, continuation: nil, newerThan: nil, unreadOnly: nil, log: support.log)
service.mockResult = .failure(URLError(.fileDoesNotExist))
@ -54,7 +54,7 @@ class FeedlyGetStreamContentsOperationTests: XCTestCase {
let newerThan: Date? = Date(timeIntervalSinceReferenceDate: 86)
let unreadOnly: Bool? = true
let getStreamContents = FeedlyGetStreamContentsOperation(account: account, resource: resource, service: service, continuation: continuation, newerThan: newerThan, unreadOnly: unreadOnly)
let getStreamContents = FeedlyGetStreamContentsOperation(account: account, resource: resource, service: service, continuation: continuation, newerThan: newerThan, unreadOnly: unreadOnly, log: support.log)
let mockStream = FeedlyStream(id: "stream/1", updated: nil, continuation: nil, items: [])
service.mockResult = .success(mockStream)
@ -97,7 +97,7 @@ class FeedlyGetStreamContentsOperationTests: XCTestCase {
transport.testFiles["/v3/streams/contents"] = "\(jsonName).json"
let resource = FeedlyCategoryResourceId(id: "user/f2f031bd-f3e3-4893-a447-467a291c6d1e/category/5ca4d61d-e55d-4999-a8d1-c3b9d8789815")
let getStreamContents = FeedlyGetStreamContentsOperation(account: account, resource: resource, service: caller, continuation: nil, newerThan: nil, unreadOnly: nil)
let getStreamContents = FeedlyGetStreamContentsOperation(account: account, resource: resource, service: caller, continuation: nil, newerThan: nil, unreadOnly: nil, log: support.log)
let completionExpectation = expectation(description: "Did Finish")
getStreamContents.completionBlock = {

View File

@ -30,7 +30,7 @@ class FeedlyGetStreamIdsOperationTests: XCTestCase {
let service = TestGetStreamIdsService()
let resource = FeedlyCategoryResourceId(id: "user/1234/category/5678")
let getStreamIds = FeedlyGetStreamIdsOperation(account: account, resource: resource, service: service, continuation: nil, newerThan: nil, unreadOnly: nil)
let getStreamIds = FeedlyGetStreamIdsOperation(account: account, resource: resource, service: service, continuation: nil, newerThan: nil, unreadOnly: nil, log: support.log)
service.mockResult = .failure(URLError(.fileDoesNotExist))
@ -54,7 +54,7 @@ class FeedlyGetStreamIdsOperationTests: XCTestCase {
let newerThan: Date? = Date(timeIntervalSinceReferenceDate: 1000)
let unreadOnly: Bool? = false
let getStreamIds = FeedlyGetStreamIdsOperation(account: account, resource: resource, service: service, continuation: continuation, newerThan: newerThan, unreadOnly: unreadOnly)
let getStreamIds = FeedlyGetStreamIdsOperation(account: account, resource: resource, service: service, continuation: continuation, newerThan: newerThan, unreadOnly: unreadOnly, log: support.log)
let mockStreamIds = FeedlyStreamIds(continuation: "1234", ids: ["item/1", "item/2", "item/3"])
service.mockResult = .success(mockStreamIds)
@ -92,7 +92,7 @@ class FeedlyGetStreamIdsOperationTests: XCTestCase {
transport.testFiles["/v3/streams/ids"] = "\(jsonName).json"
let resource = FeedlyCategoryResourceId(id: "user/1234/category/5678")
let getStreamIds = FeedlyGetStreamIdsOperation(account: account, resource: resource, service: caller, continuation: nil, newerThan: nil, unreadOnly: nil)
let getStreamIds = FeedlyGetStreamIdsOperation(account: account, resource: resource, service: caller, continuation: nil, newerThan: nil, unreadOnly: nil, log: support.log)
let completionExpectation = expectation(description: "Did Finish")
getStreamIds.completionBlock = {

View File

@ -70,7 +70,7 @@ final class FeedlyAddFeedRequest {
let getStream: FeedlyGetStreamContentsOperation? = {
if refreshes {
let op = FeedlyGetStreamContentsOperation(account: account, resourceProvider: addRequest, service: caller, newerThan: nil)
let op = FeedlyGetStreamContentsOperation(account: account, resourceProvider: addRequest, service: caller, newerThan: nil, log: log)
op.addDependency(createFeeds)
return op
}

View File

@ -42,7 +42,7 @@ final class FeedlyGetCollectionsOperation: FeedlyOperation, FeedlyCollectionProv
self.didFinish()
case .failure(let error):
os_log(.debug, log: self.log, "Unable to request collections %@.", error as NSError)
os_log(.debug, log: self.log, "Unable to request collections: %{public}@.", error as NSError)
self.didFinish(error)
}
}

View File

@ -7,17 +7,20 @@
//
import Foundation
import os.log
/// Single responsibility is to get full entries for the entry identifiers.
final class FeedlyGetEntriesOperation: FeedlyOperation, FeedlyEntryProviding {
let account: Account
let service: FeedlyGetEntriesService
let provider: FeedlyEntryIdenifierProviding
let log: OSLog
init(account: Account, service: FeedlyGetEntriesService, provider: FeedlyEntryIdenifierProviding) {
init(account: Account, service: FeedlyGetEntriesService, provider: FeedlyEntryIdenifierProviding, log: OSLog) {
self.account = account
self.service = service
self.provider = provider
self.log = log
}
private (set) var entries = [FeedlyEntry]()
@ -35,6 +38,7 @@ final class FeedlyGetEntriesOperation: FeedlyOperation, FeedlyEntryProviding {
self.didFinish()
case .failure(let error):
os_log(.debug, log: self.log, "Unable to get entries: %{public}@.", error as NSError)
self.didFinish(error)
}
}

View File

@ -8,6 +8,7 @@
import Foundation
import RSParser
import os.log
protocol FeedlyEntryProviding {
var entries: [FeedlyEntry] { get }
@ -68,20 +69,22 @@ final class FeedlyGetStreamContentsOperation: FeedlyOperation, FeedlyEntryProvid
let unreadOnly: Bool?
let newerThan: Date?
let continuation: String?
let log: OSLog
weak var streamDelegate: FeedlyGetStreamContentsOperationDelegate?
init(account: Account, resource: FeedlyResourceId, service: FeedlyGetStreamContentsService, continuation: String? = nil, newerThan: Date?, unreadOnly: Bool? = nil) {
init(account: Account, resource: FeedlyResourceId, service: FeedlyGetStreamContentsService, continuation: String? = nil, newerThan: Date?, unreadOnly: Bool? = nil, log: OSLog) {
self.account = account
self.resourceProvider = ResourceProvider(resource: resource)
self.service = service
self.continuation = continuation
self.unreadOnly = unreadOnly
self.newerThan = newerThan
self.log = log
}
convenience init(account: Account, resourceProvider: FeedlyResourceProviding, service: FeedlyGetStreamContentsService, newerThan: Date?, unreadOnly: Bool? = nil) {
self.init(account: account, resource: resourceProvider.resource, service: service, newerThan: newerThan, unreadOnly: unreadOnly)
convenience init(account: Account, resourceProvider: FeedlyResourceProviding, service: FeedlyGetStreamContentsService, newerThan: Date?, unreadOnly: Bool? = nil, log: OSLog) {
self.init(account: account, resource: resourceProvider.resource, service: service, newerThan: newerThan, unreadOnly: unreadOnly, log: log)
}
override func main() {
@ -100,6 +103,7 @@ final class FeedlyGetStreamContentsOperation: FeedlyOperation, FeedlyEntryProvid
self.didFinish()
case .failure(let error):
os_log(.debug, log: self.log, "Unable to get stream contents: %{public}@.", error as NSError)
self.didFinish(error)
}
}

View File

@ -38,14 +38,16 @@ final class FeedlyGetStreamIdsOperation: FeedlyOperation, FeedlyEntryIdenifierPr
let resource: FeedlyResourceId
let unreadOnly: Bool?
let newerThan: Date?
let log: OSLog
init(account: Account, resource: FeedlyResourceId, service: FeedlyGetStreamIdsService, continuation: String? = nil, newerThan: Date? = nil, unreadOnly: Bool?) {
init(account: Account, resource: FeedlyResourceId, service: FeedlyGetStreamIdsService, continuation: String? = nil, newerThan: Date? = nil, unreadOnly: Bool?, log: OSLog) {
self.account = account
self.resource = resource
self.service = service
self.continuation = continuation
self.newerThan = newerThan
self.unreadOnly = unreadOnly
self.log = log
}
weak var streamIdsDelegate: FeedlyGetStreamIdsOperationDelegate?
@ -66,6 +68,7 @@ final class FeedlyGetStreamIdsOperation: FeedlyOperation, FeedlyEntryIdenifierPr
self.didFinish()
case .failure(let error):
os_log(.debug, log: self.log, "Unable to get stream ids: %{public}@.", error as NSError)
self.didFinish(error)
}
}

View File

@ -50,7 +50,8 @@ final class FeedlyRequestStreamsOperation: FeedlyOperation {
resource: resource,
service: service,
newerThan: newerThan,
unreadOnly: unreadOnly)
unreadOnly: unreadOnly,
log: log)
queueDelegate?.feedlyRequestStreamsOperation(self, enqueue: operation)
}

View File

@ -139,7 +139,7 @@ extension FeedlySyncAllOperation: FeedlyOperationDelegate {
func feedlyOperation(_ operation: FeedlyOperation, didFailWith error: Error) {
assert(Thread.isMainThread)
os_log(.debug, log: log, "%{public}@ failed with error: %{public}@.", operation, error.localizedDescription)
os_log(.debug, log: log, "%{public}@ failed with error: %{public}@.", operation, error as NSError)
syncCompletionHandler?(.failure(error))
syncCompletionHandler = nil

View File

@ -66,7 +66,8 @@ final class FeedlySyncStarredArticlesOperation: FeedlyOperation, FeedlyOperation
let getFirstPage = FeedlyGetStreamContentsOperation(account: account,
resource: resource,
service: service,
newerThan: nil)
newerThan: nil,
log: log)
let organiseByFeed = FeedlyOrganiseParsedItemsByFeedOperation(account: account,
parsedItemProvider: provider,
@ -128,7 +129,8 @@ final class FeedlySyncStarredArticlesOperation: FeedlyOperation, FeedlyOperation
resource: operation.resource,
service: operation.service,
continuation: continuation,
newerThan: operation.newerThan)
newerThan: operation.newerThan,
log: log)
nextPageOperation.delegate = self
nextPageOperation.streamDelegate = self

View File

@ -68,7 +68,8 @@ final class FeedlySyncStreamContentsOperation: FeedlyOperation, FeedlyOperationD
resource: resource,
service: service,
continuation: continuation,
newerThan: newerThan)
newerThan: newerThan,
log: log)
let organiseByFeed = FeedlyOrganiseParsedItemsByFeedOperation(account: account,

View File

@ -60,7 +60,8 @@ final class FeedlySyncUnreadStatusesOperation: FeedlyOperation, FeedlyOperationD
resource: resource,
service: service,
newerThan: nil,
unreadOnly: true)
unreadOnly: true,
log: log)
getFirstPageOfUnreadIds.delegate = self
getFirstPageOfUnreadIds.streamIdsDelegate = self
@ -110,7 +111,8 @@ final class FeedlySyncUnreadStatusesOperation: FeedlyOperation, FeedlyOperationD
service: operation.service,
continuation: continuation,
newerThan: operation.newerThan,
unreadOnly: operation.unreadOnly)
unreadOnly: operation.unreadOnly,
log: log)
nextPageOperation.delegate = self
nextPageOperation.streamIdsDelegate = self