NetNewsWire/Frameworks/Account/Feedly/FeedlyAccountDelegateError....

101 lines
3.9 KiB
Swift
Raw Normal View History

//
// 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 unexpectedResourceId(String)
case unableToAddFolder(String)
case unableToRenameFolder(String, String)
case unableToRemoveFolder(String)
case unableToMoveFeedBetweenFolders(WebFeed, Folder, Folder)
case addFeedChooseFolder
case addFeedInvalidFolder(Folder)
case unableToRenameFeed(String, String)
case unableToRemoveFeed(WebFeed)
var errorDescription: String? {
switch self {
case .notLoggedIn:
2019-10-22 12:58:05 +02:00
return NSLocalizedString("Please add the Feedly account again.", comment: "Feedly Credentials not found.")
case .unexpectedResourceId(let resourceId):
let template = NSLocalizedString("Could not encode the identifier “%@”.", comment: "Feedly Could not encode resource id to send to Feedly.")
return String(format: template, resourceId)
case .unableToAddFolder(let name):
2019-10-22 12:58:05 +02:00
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):
2019-10-22 12:58:05 +02:00
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):
2019-10-22 12:58:05 +02:00
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):
2019-10-22 12:58:05 +02:00
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:
2019-10-22 12:58:05 +02:00
return NSLocalizedString("Please choose a folder to contain the feed.", comment: "Feedly Feed can only be added to folders.")
case .addFeedInvalidFolder(let invalidFolder):
2019-10-22 12:58:05 +02:00
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):
2019-10-22 12:58:05 +02:00
let template = NSLocalizedString("Could not rename “%@” to “%@”.", comment: "Feedly Could not rename a feed.")
return String(format: template, from, to)
case .unableToRemoveFeed(let feed):
2019-10-22 12:58:05 +02:00
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 .unexpectedResourceId:
let template = NSLocalizedString("Please contact NetNewsWire support.", comment: "Feedly Recovery suggestion for not being able to encode a resource id to send to Feedly..")
return String(format: template)
case .unableToAddFolder:
return nil
case .unableToRenameFolder:
return nil
case .unableToRemoveFolder:
return nil
case .unableToMoveFeedBetweenFolders(let feed, let from, let to):
2019-10-22 12:58:05 +02:00
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:
2019-10-22 12:58:05 +02:00
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
}
}
}