Use Feed Finder before attempting to add feed urls

This commit is contained in:
Jeremy Beker 2019-07-13 08:37:08 -04:00
parent 4edd38d11a
commit fe9129ac4a
No known key found for this signature in database
GPG Key ID: CD5EE767A4A34FD0
1 changed files with 81 additions and 58 deletions

View File

@ -321,6 +321,20 @@ final class ReaderAPICaller: NSObject {
return
}
guard let url = URL(string: url) else {
completion(.failure(LocalAccountDelegateError.invalidParameter))
return
}
FeedFinder.find(url: url) { result in
switch result {
case .success(let feedSpecifiers):
guard let bestFeedSpecifier = FeedSpecifier.bestFeed(in: feedSpecifiers),
let url = URL(string: bestFeedSpecifier.urlString) else {
completion(.failure(AccountError.createErrorNotFound))
return
}
self.requestAuthorizationToken(endpoint: baseURL) { (result) in
switch result {
case .success(let token):
@ -330,7 +344,7 @@ final class ReaderAPICaller: NSObject {
}
components.queryItems = [
URLQueryItem(name: "quickadd", value: url)
URLQueryItem(name: "quickadd", value: url.absoluteString)
]
guard let callURL = components.url else {
@ -394,6 +408,15 @@ final class ReaderAPICaller: NSObject {
completion(.failure(error))
}
}
case .failure:
completion(.failure(AccountError.createErrorNotFound))
}
}
//
}
func renameSubscription(subscriptionID: String, newName: String, completion: @escaping (Result<Void, Error>) -> Void) {