mirror of
https://github.com/Ranchero-Software/NetNewsWire.git
synced 2025-02-03 12:27:32 +01:00
Allow adding of feeds
This commit is contained in:
parent
77fc1bd8fe
commit
48e47ec40b
@ -12,6 +12,10 @@ import Foundation
|
||||
import SyncDatabase
|
||||
import RSWeb
|
||||
|
||||
enum FeedWranglerError : Error {
|
||||
case general(message: String)
|
||||
}
|
||||
|
||||
final class FeedWranglerAPICaller: NSObject {
|
||||
|
||||
private var transport: Transport!
|
||||
@ -72,6 +76,32 @@ final class FeedWranglerAPICaller: NSObject {
|
||||
}
|
||||
}
|
||||
|
||||
func addSubscription(url: String, completion: @escaping (Result<Void, Error>) -> Void) {
|
||||
guard let callURL = FeedWranglerConfig
|
||||
.clientURL
|
||||
.appendingPathComponent("subscriptions/add_feed")
|
||||
.appendingQueryItem(URLQueryItem(name: "feed_url", value: url)) else {
|
||||
completion(.failure(TransportError.noURL))
|
||||
return
|
||||
}
|
||||
|
||||
let request = URLRequest(url: callURL, credentials: credentials)
|
||||
|
||||
transport.send(request: request, resultType: FeedWranglerGenericResult.self) { result in
|
||||
switch result {
|
||||
case .success(let (_, results)):
|
||||
if let error = results?.error {
|
||||
completion(.failure(FeedWranglerError.general(message: error)))
|
||||
} else {
|
||||
completion(.success(()))
|
||||
}
|
||||
|
||||
case .failure(let error):
|
||||
completion(.failure(error))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func renameSubscription(feedID: String, newName: String, completion: @escaping (Result<Void, Error>) -> Void) {
|
||||
|
||||
let url = FeedWranglerConfig.clientURL
|
||||
|
@ -201,7 +201,26 @@ final class FeedWranglerAccountDelegate: AccountDelegate {
|
||||
}
|
||||
|
||||
func createFeed(for account: Account, url: String, name: String?, container: Container, completion: @escaping (Result<Feed, Error>) -> Void) {
|
||||
fatalError()
|
||||
refreshProgress.addToNumberOfTasksAndRemaining(3)
|
||||
|
||||
self.refreshCredentials(for: account) {
|
||||
self.refreshProgress.completeTask()
|
||||
self.caller.addSubscription(url: url) { result in
|
||||
self.refreshProgress.completeTask()
|
||||
self.caller.addSubscription(url: url) { result in
|
||||
self.refreshProgress.completeTask()
|
||||
|
||||
switch result {
|
||||
case .success:
|
||||
let feed = account.createFeed(with: name, url: url, feedID: url, homePageURL: url)
|
||||
completion(.success(feed))
|
||||
|
||||
case .failure(let error):
|
||||
completion(.failure(error))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func renameFeed(for account: Account, with feed: Feed, to name: String, completion: @escaping (Result<Void, Error>) -> Void) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user