NetNewsWire/Frameworks/Account/CloudKit/CloudKitReceiveStatusOperat...

51 lines
1.4 KiB
Swift

//
// CloudKitReceiveStatusOperation.swift
// Account
//
// Created by Maurice Parker on 5/2/20.
// Copyright © 2020 Ranchero Software, LLC. All rights reserved.
//
import Foundation
import os.log
import RSCore
class CloudKitReceiveStatusOperation: MainThreadOperation {
private var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "CloudKit")
// MainThreadOperation
public var isCanceled = false
public var id: Int?
public weak var operationDelegate: MainThreadOperationDelegate?
public var name: String? = "CloudKitReceiveStatusOperation"
public var completionBlock: MainThreadOperation.MainThreadOperationCompletionBlock?
private weak var articlesZone: CloudKitArticlesZone?
init(articlesZone: CloudKitArticlesZone) {
self.articlesZone = articlesZone
}
func run() {
guard let articlesZone = articlesZone else {
self.operationDelegate?.operationDidComplete(self)
return
}
os_log(.debug, log: log, "Refreshing article statuses...")
articlesZone.refreshArticles() { result in
os_log(.debug, log: self.log, "Done refreshing article statuses.")
switch result {
case .success:
self.operationDelegate?.operationDidComplete(self)
case .failure(let error):
os_log(.error, log: self.log, "Receive status error: %@.", error.localizedDescription)
self.operationDelegate?.cancelOperation(self)
}
}
}
}