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
commit b0b0b3ad03
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 25 additions and 7 deletions

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
}
}