Remove synchronous sync database status insert function.
This commit is contained in:
parent
45f5776b7e
commit
cba900d4e4
@ -407,13 +407,13 @@ final class CloudKitAccountDelegate: AccountDelegate {
|
|||||||
return SyncStatus(articleID: article.articleID, key: SyncStatus.Key(statusKey), flag: flag)
|
return SyncStatus(articleID: article.articleID, key: SyncStatus.Key(statusKey), flag: flag)
|
||||||
}
|
}
|
||||||
|
|
||||||
try? self.database.insertStatuses(syncStatuses)
|
self.database.insertStatuses(syncStatuses) { _ in
|
||||||
|
|
||||||
self.database.selectPendingCount { result in
|
self.database.selectPendingCount { result in
|
||||||
if let count = try? result.get(), count > 100 {
|
if let count = try? result.get(), count > 100 {
|
||||||
self.sendArticleStatus(for: account, showProgress: false) { _ in }
|
self.sendArticleStatus(for: account, showProgress: false) { _ in }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
os_log(.error, log: self.log, "Error marking article status: %@", error.localizedDescription)
|
os_log(.error, log: self.log, "Error marking article status: %@", error.localizedDescription)
|
||||||
}
|
}
|
||||||
|
@ -148,8 +148,9 @@ private extension CloudKitArticlesZoneDelegate {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
let syncStatuses = deletes.map { SyncStatus(articleID: $0.articleID, key: .deleted, flag: true) }
|
let syncStatuses = deletes.map { SyncStatus(articleID: $0.articleID, key: .deleted, flag: true) }
|
||||||
try? self.database.insertStatuses(syncStatuses)
|
self.database.insertStatuses(syncStatuses) { _ in
|
||||||
group.leave()
|
group.leave()
|
||||||
|
}
|
||||||
case .failure(let databaseError):
|
case .failure(let databaseError):
|
||||||
errorOccurred = true
|
errorOccurred = true
|
||||||
os_log(.error, log: self.log, "Error occurred while storing articles: %@", databaseError.localizedDescription)
|
os_log(.error, log: self.log, "Error occurred while storing articles: %@", databaseError.localizedDescription)
|
||||||
|
@ -443,13 +443,13 @@ final class FeedWranglerAccountDelegate: AccountDelegate {
|
|||||||
return SyncStatus(articleID: article.articleID, key: SyncStatus.Key(statusKey), flag: flag)
|
return SyncStatus(articleID: article.articleID, key: SyncStatus.Key(statusKey), flag: flag)
|
||||||
}
|
}
|
||||||
|
|
||||||
try? self.database.insertStatuses(syncStatuses)
|
self.database.insertStatuses(syncStatuses) { _ in
|
||||||
|
|
||||||
self.database.selectPendingCount { result in
|
self.database.selectPendingCount { result in
|
||||||
if let count = try? result.get(), count > 100 {
|
if let count = try? result.get(), count > 100 {
|
||||||
self.sendArticleStatus(for: account) { _ in }
|
self.sendArticleStatus(for: account) { _ in }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
os_log(.error, log: self.log, "Error marking article status: %@", error.localizedDescription)
|
os_log(.error, log: self.log, "Error marking article status: %@", error.localizedDescription)
|
||||||
}
|
}
|
||||||
|
@ -542,13 +542,13 @@ final class FeedbinAccountDelegate: AccountDelegate {
|
|||||||
return SyncStatus(articleID: article.articleID, key: SyncStatus.Key(statusKey), flag: flag)
|
return SyncStatus(articleID: article.articleID, key: SyncStatus.Key(statusKey), flag: flag)
|
||||||
}
|
}
|
||||||
|
|
||||||
try? self.database.insertStatuses(syncStatuses)
|
self.database.insertStatuses(syncStatuses) { _ in
|
||||||
|
|
||||||
self.database.selectPendingCount { result in
|
self.database.selectPendingCount { result in
|
||||||
if let count = try? result.get(), count > 100 {
|
if let count = try? result.get(), count > 100 {
|
||||||
self.sendArticleStatus(for: account) { _ in }
|
self.sendArticleStatus(for: account) { _ in }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
os_log(.error, log: self.log, "Error marking article status: %@", error.localizedDescription)
|
os_log(.error, log: self.log, "Error marking article status: %@", error.localizedDescription)
|
||||||
}
|
}
|
||||||
|
@ -495,13 +495,13 @@ final class FeedlyAccountDelegate: AccountDelegate {
|
|||||||
return SyncStatus(articleID: article.articleID, key: SyncStatus.Key(statusKey), flag: flag)
|
return SyncStatus(articleID: article.articleID, key: SyncStatus.Key(statusKey), flag: flag)
|
||||||
}
|
}
|
||||||
|
|
||||||
try? self.database.insertStatuses(syncStatuses)
|
self.database.insertStatuses(syncStatuses) { _ in
|
||||||
|
|
||||||
self.database.selectPendingCount { result in
|
self.database.selectPendingCount { result in
|
||||||
if let count = try? result.get(), count > 100 {
|
if let count = try? result.get(), count > 100 {
|
||||||
self.sendArticleStatus(for: account) { _ in }
|
self.sendArticleStatus(for: account) { _ in }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
os_log(.error, log: self.log, "Error marking article status: %@", error.localizedDescription)
|
os_log(.error, log: self.log, "Error marking article status: %@", error.localizedDescription)
|
||||||
}
|
}
|
||||||
|
@ -581,13 +581,13 @@ final class NewsBlurAccountDelegate: AccountDelegate {
|
|||||||
return SyncStatus(articleID: article.articleID, key: SyncStatus.Key(statusKey), flag: flag)
|
return SyncStatus(articleID: article.articleID, key: SyncStatus.Key(statusKey), flag: flag)
|
||||||
}
|
}
|
||||||
|
|
||||||
try? self.database.insertStatuses(syncStatuses)
|
self.database.insertStatuses(syncStatuses) { _ in
|
||||||
|
|
||||||
self.database.selectPendingCount { result in
|
self.database.selectPendingCount { result in
|
||||||
if let count = try? result.get(), count > 100 {
|
if let count = try? result.get(), count > 100 {
|
||||||
self.sendArticleStatus(for: account) { _ in }
|
self.sendArticleStatus(for: account) { _ in }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
os_log(.error, log: self.log, "Error marking article status: %@", error.localizedDescription)
|
os_log(.error, log: self.log, "Error marking article status: %@", error.localizedDescription)
|
||||||
}
|
}
|
||||||
|
@ -472,13 +472,13 @@ final class ReaderAPIAccountDelegate: AccountDelegate {
|
|||||||
return SyncStatus(articleID: article.articleID, key: SyncStatus.Key(statusKey), flag: flag)
|
return SyncStatus(articleID: article.articleID, key: SyncStatus.Key(statusKey), flag: flag)
|
||||||
}
|
}
|
||||||
|
|
||||||
try? self.database.insertStatuses(syncStatuses)
|
self.database.insertStatuses(syncStatuses) { _ in
|
||||||
|
|
||||||
self.database.selectPendingCount { result in
|
self.database.selectPendingCount { result in
|
||||||
if let count = try? result.get(), count > 100 {
|
if let count = try? result.get(), count > 100 {
|
||||||
self.sendArticleStatus(for: account) { _ in }
|
self.sendArticleStatus(for: account) { _ in }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
os_log(.error, log: self.log, "Error marking article status: %@", error.localizedDescription)
|
os_log(.error, log: self.log, "Error marking article status: %@", error.localizedDescription)
|
||||||
}
|
}
|
||||||
|
@ -32,10 +32,6 @@ public struct SyncDatabase {
|
|||||||
|
|
||||||
// MARK: - API
|
// MARK: - API
|
||||||
|
|
||||||
public func insertStatuses(_ statuses: [SyncStatus]) throws {
|
|
||||||
try syncStatusTable.insertStatuses(statuses)
|
|
||||||
}
|
|
||||||
|
|
||||||
public func insertStatuses(_ statuses: [SyncStatus], completion: @escaping DatabaseCompletionBlock) {
|
public func insertStatuses(_ statuses: [SyncStatus], completion: @escaping DatabaseCompletionBlock) {
|
||||||
syncStatusTable.insertStatuses(statuses, completion: completion)
|
syncStatusTable.insertStatuses(statuses, completion: completion)
|
||||||
}
|
}
|
||||||
|
@ -153,23 +153,6 @@ struct SyncStatusTable: DatabaseTable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func insertStatuses(_ statuses: [SyncStatus]) throws {
|
|
||||||
var error: DatabaseError?
|
|
||||||
queue.runInTransactionSync { databaseResult in
|
|
||||||
switch databaseResult {
|
|
||||||
case .success(let database):
|
|
||||||
let statusArray = statuses.map { $0.databaseDictionary() }
|
|
||||||
self.insertRows(statusArray, insertType: .orReplace, in: database)
|
|
||||||
case .failure(let databaseError):
|
|
||||||
error = databaseError
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if let error = error {
|
|
||||||
throw error
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func insertStatuses(_ statuses: [SyncStatus], completion: @escaping DatabaseCompletionBlock) {
|
func insertStatuses(_ statuses: [SyncStatus], completion: @escaping DatabaseCompletionBlock) {
|
||||||
queue.runInTransaction { databaseResult in
|
queue.runInTransaction { databaseResult in
|
||||||
|
|
||||||
@ -181,9 +164,9 @@ struct SyncStatusTable: DatabaseTable {
|
|||||||
switch databaseResult {
|
switch databaseResult {
|
||||||
case .success(let database):
|
case .success(let database):
|
||||||
makeDatabaseCall(database)
|
makeDatabaseCall(database)
|
||||||
completion(nil)
|
callCompletion(completion, nil)
|
||||||
case .failure(let databaseError):
|
case .failure(let databaseError):
|
||||||
completion(databaseError)
|
callCompletion(completion, databaseError)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user