// // FeedlyAccountDelegateError.swift // Account // // Created by Kiel Gillard on 9/10/19. // Copyright © 2019 Ranchero Software, LLC. All rights reserved. // import Foundation enum FeedlyAccountDelegateError: LocalizedError { case notLoggedIn case unableToAddFolder(String) case unableToRenameFolder(String, String) case unableToRemoveFolder(String) case unableToMoveFeedBetweenFolders(Feed, Folder, Folder) case addFeedChooseFolder case addFeedInvalidFolder(Folder) case unableToRenameFeed(String, String) case unableToRemoveFeed(Feed) var errorDescription: String? { switch self { case .notLoggedIn: return NSLocalizedString("Please add the Feedly account again.", comment: "Feedly – Credentials not found.") case .unableToAddFolder(let name): let template = NSLocalizedString("Could not create a folder named “%@”.", comment: "Feedly – Could not create a folder/collection.") return String(format: template, name) case .unableToRenameFolder(let from, let to): let template = NSLocalizedString("Could not rename “%@” to “%@”.", comment: "Feedly – Could not rename a folder/collection.") return String(format: template, from, to) case .unableToRemoveFolder(let name): let template = NSLocalizedString("Could not remove the folder named “%@”.", comment: "Feedly – Could not remove a folder/collection.") return String(format: template, name) case .unableToMoveFeedBetweenFolders(let feed, _, let to): let template = NSLocalizedString("Could not move “%@” to “%@”.", comment: "Feedly – Could not move a feed between folders/collections.") return String(format: template, feed.nameForDisplay, to.nameForDisplay) case .addFeedChooseFolder: return NSLocalizedString("Please choose a folder to contain the feed.", comment: "Feedly – Feed can only be added to folders.") case .addFeedInvalidFolder(let invalidFolder): let template = NSLocalizedString("Feeds cannot be added to the “%@” folder.", comment: "Feedly – Feed can only be added to folders.") return String(format: template, invalidFolder.nameForDisplay) case .unableToRenameFeed(let from, let to): let template = NSLocalizedString("Could not rename “%@” to “%@”.", comment: "Feedly – Could not rename a feed.") return String(format: template, from, to) case .unableToRemoveFeed(let feed): let template = NSLocalizedString("Could not remove “%@”.", comment: "Feedly – Could not remove a feed.") return String(format: template, feed.nameForDisplay) } } var recoverySuggestion: String? { switch self { case .notLoggedIn: return nil case .unableToAddFolder: return nil case .unableToRenameFolder: return nil case .unableToRemoveFolder: return nil case .unableToMoveFeedBetweenFolders(let feed, let from, let to): let template = NSLocalizedString("“%@” may be in both “%@” and “%@”.", comment: "Feedly – Could not move a feed between folders/collections.") return String(format: template, feed.nameForDisplay, from.nameForDisplay, to.nameForDisplay) case .addFeedChooseFolder: return nil case .addFeedInvalidFolder: return NSLocalizedString("Please choose a different folder to contain the feed.", comment: "Feedly – Feed can only be added to folders recovery suggestion.") case .unableToRemoveFeed: return nil case .unableToRenameFeed: return nil } } }