Merge pull request #2568 from jbennett/percent-encode-pluses

Handle +’s in the query items
This commit is contained in:
Maurice Parker
2020-11-13 05:29:23 -06:00
committed by GitHub

View File

@@ -111,13 +111,18 @@ final class FeedWranglerAPICaller: NSObject {
}
func renameSubscription(feedID: String, newName: String, completion: @escaping (Result<Void, Error>) -> Void) {
let url = FeedWranglerConfig.clientURL
.appendingPathComponent("subscriptions/rename_feed")
.appendingQueryItems([
URLQueryItem(name: "feed_id", value: feedID),
URLQueryItem(name: "feed_name", value: newName),
])
var postData = URLComponents(url: FeedWranglerConfig.clientURL, resolvingAgainstBaseURL: false)
postData?.path += "subscriptions/rename_feed"
postData?.queryItems = [
URLQueryItem(name: "feed_id", value: feedID),
URLQueryItem(name: "feed_name", value: newName),
]
guard let url = postData?.urlWithEnhancedPercentEncodedQuery else {
completion(.failure(FeedWranglerError.general(message: "Could not encode name")))
return
}
standardSend(url: url, resultType: FeedWranglerSubscriptionsRequest.self) { result in
switch result {
case .success:
@@ -290,3 +295,16 @@ final class FeedWranglerAPICaller: NSObject {
}
}
private extension URLComponents {
var urlWithEnhancedPercentEncodedQuery: URL? {
guard let tempQueryItems = self.queryItems, !tempQueryItems.isEmpty else {
return self.url
}
var tempComponents = self
tempComponents.percentEncodedQuery = self.enhancedPercentEncodedQuery
return tempComponents.url
}
}