Handle when a feed in a folder being copied/moved already is subscribed in target account

This commit is contained in:
Maurice Parker 2019-05-30 14:44:13 -05:00
parent 30c21bb125
commit a8f090656d

View File

@ -492,6 +492,18 @@ private extension SidebarOutlineDataSource {
case .success(let destinationFolder): case .success(let destinationFolder):
let group = DispatchGroup() let group = DispatchGroup()
for feed in folder.topLevelFeeds { for feed in folder.topLevelFeeds {
if let existingFeed = destinationAccount.existingFeed(withURL: feed.url) {
group.enter()
destinationAccount.addFeed(existingFeed, to: destinationFolder) { result in
group.leave()
switch result {
case .success:
break
case .failure(let error):
NSApplication.shared.presentError(error)
}
}
} else {
group.enter() group.enter()
destinationAccount.createFeed(url: feed.url, name: feed.editedName, container: destinationFolder) { result in destinationAccount.createFeed(url: feed.url, name: feed.editedName, container: destinationFolder) { result in
group.leave() group.leave()
@ -503,11 +515,13 @@ private extension SidebarOutlineDataSource {
} }
} }
} }
}
group.notify(queue: DispatchQueue.main) { group.notify(queue: DispatchQueue.main) {
completion() completion()
} }
case .failure(let error): case .failure(let error):
NSApplication.shared.presentError(error) NSApplication.shared.presentError(error)
completion()
} }
} }