Made sync status sequential so that we stop losing statuses when we automatically send them on exceeding 100 statuses

This commit is contained in:
Maurice Parker
2020-04-29 16:14:18 -05:00
parent d30987ca0a
commit 0b49acfabc
8 changed files with 41 additions and 63 deletions

View File

@@ -149,22 +149,21 @@ struct SyncStatusTable: DatabaseTable {
}
}
func insertStatuses(_ statuses: [SyncStatus], completion: DatabaseCompletionBlock? = nil) {
queue.runInTransaction { databaseResult in
func makeDatabaseCall(_ database: FMDatabase) {
let statusArray = statuses.map { $0.databaseDictionary() }
self.insertRows(statusArray, insertType: .orReplace, in: database)
}
func insertStatuses(_ statuses: [SyncStatus]) throws {
var error: DatabaseError?
queue.runInTransactionSync { databaseResult in
switch databaseResult {
case .success(let database):
makeDatabaseCall(database)
callCompletion(completion, nil)
let statusArray = statuses.map { $0.databaseDictionary() }
self.insertRows(statusArray, insertType: .orReplace, in: database)
case .failure(let databaseError):
callCompletion(completion, databaseError)
error = databaseError
}
}
if let error = error {
throw error
}
}
}