Create addNewFeed function to replace FeedlyAddNewFeedOperation.

This commit is contained in:
Brent Simmons 2024-04-28 22:03:51 -07:00
parent 2cde31a523
commit e85e449dcc

@ -40,13 +40,13 @@ final class FeedlyAccountDelegate: AccountDelegate {
var credentials: Credentials? {
didSet {
#if DEBUG
#if DEBUG
// https://developer.feedly.com/v3/developer/
if let devToken = ProcessInfo.processInfo.environment["FEEDLY_DEV_ACCESS_TOKEN"], !devToken.isEmpty {
caller.credentials = Credentials(type: .oauthAccessToken, username: "Developer", secret: devToken)
return
}
#endif
#endif
caller.credentials = credentials
}
}
@ -678,6 +678,7 @@ final class FeedlyAccountDelegate: AccountDelegate {
}
}
@discardableResult
func addFeedToCollection(feedResource: FeedlyFeedResourceID, feedName: String? = nil, collectionID: String, folder: Folder) async throws -> [([FeedlyFeed], Folder)] {
// To replace FeedlyAddFeedToCollectionOperation
@ -953,6 +954,28 @@ final class FeedlyAccountDelegate: AccountDelegate {
try await updateAccountFeeds(parsedItems: parsedItems)
}
func addNewFeed(url: String, feedName: String?) async throws {
// To replace FeedlyAddNewFeedOperation
let validator = FeedlyFeedContainerValidator(container: container)
let (folder, collectionID) = try validator.getValidContainer()
let searchResponse = try await searchForFeed(url: url)
guard let firstFeed = response.results.first else {
throw AccountError.createErrorNotFound
}
let feedResourceID = FeedlyFeedResourceID(id: firstFeed.feedID)
try await addFeedToCollection(feedResource: feedResourceID, feedName: feedName, collectionID: collectionID, folder: folder)
// TODO: FeedlyCreateFeedsForCollectionFoldersOperation replacement
// let createFeeds = TODO
try await fetchAndProcessUnreadArticleIDs()
try await syncStreamContents(feedResourceID: feedResourceID)
}
// MARK: Suspend and Resume (for iOS)
/// Suspend all network activity