mirror of
https://github.com/Ranchero-Software/NetNewsWire
synced 2025-08-12 06:26:36 +00:00
Continue adopting async/await.
This commit is contained in:
@@ -44,10 +44,18 @@ public struct SyncDatabase {
|
||||
syncStatusTable.selectPendingCount(completion)
|
||||
}
|
||||
|
||||
public func selectPendingReadArticleIDs() async throws -> Set<String> {
|
||||
try await syncStatusTable.selectPendingReadArticleIDs()
|
||||
}
|
||||
|
||||
public func selectPendingReadStatusArticleIDs(completion: @escaping SyncStatusArticleIDsCompletionBlock) {
|
||||
syncStatusTable.selectPendingReadStatusArticleIDs(completion: completion)
|
||||
}
|
||||
|
||||
|
||||
public func selectPendingStarredArticleIDs() async throws -> Set<String> {
|
||||
try await syncStatusTable.selectPendingStarredArticleIDs()
|
||||
}
|
||||
|
||||
public func selectPendingStarredStatusArticleIDs(completion: @escaping SyncStatusArticleIDsCompletionBlock) {
|
||||
syncStatusTable.selectPendingStarredStatusArticleIDs(completion: completion)
|
||||
}
|
||||
|
||||
@@ -87,10 +87,18 @@ struct SyncStatusTable: DatabaseTable {
|
||||
}
|
||||
}
|
||||
|
||||
func selectPendingReadArticleIDs() async throws -> Set<String> {
|
||||
return try await selectPendingArticleIDs(.read)
|
||||
}
|
||||
|
||||
func selectPendingReadStatusArticleIDs(completion: @escaping SyncStatusArticleIDsCompletionBlock) {
|
||||
selectPendingArticleIDsAsync(.read, completion)
|
||||
}
|
||||
|
||||
|
||||
func selectPendingStarredArticleIDs() async throws -> Set<String> {
|
||||
return try await selectPendingArticleIDs(.starred)
|
||||
}
|
||||
|
||||
func selectPendingStarredStatusArticleIDs(completion: @escaping SyncStatusArticleIDsCompletionBlock) {
|
||||
selectPendingArticleIDsAsync(.starred, completion)
|
||||
}
|
||||
@@ -197,7 +205,22 @@ private extension SyncStatusTable {
|
||||
|
||||
return SyncStatus(articleID: articleID, key: key, flag: flag, selected: selected)
|
||||
}
|
||||
|
||||
|
||||
func selectPendingArticleIDs(_ statusKey: ArticleStatus.Key) async throws -> Set<String> {
|
||||
return try await withCheckedThrowingContinuation() { continuation in
|
||||
Task { @MainActor in
|
||||
selectPendingArticleIDsAsync(statusKey) { result in
|
||||
switch result {
|
||||
case .success(let articleIDs):
|
||||
continuation.resume(returning: articleIDs)
|
||||
case .failure(let databaseError):
|
||||
continuation.resume(throwing: databaseError)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func selectPendingArticleIDsAsync(_ statusKey: ArticleStatus.Key, _ completion: @escaping SyncStatusArticleIDsCompletionBlock) {
|
||||
|
||||
queue.runInDatabase { databaseResult in
|
||||
|
||||
Reference in New Issue
Block a user