mirror of https://github.com/oxen-io/session-ios
Integrate RSS feed proxy
parent
c1c04b7ef2
commit
e95f91558b
@ -1,26 +1,26 @@
|
|||||||
import PromiseKit
|
import PromiseKit
|
||||||
|
|
||||||
internal enum LokiRSSFeedProxy {
|
public enum LokiRSSFeedProxy {
|
||||||
|
|
||||||
internal enum Error : LocalizedError {
|
public enum Error : LocalizedError {
|
||||||
case proxyResponseParsingFailed
|
case proxyResponseParsingFailed
|
||||||
|
|
||||||
internal var errorDescription: String? {
|
public var errorDescription: String? {
|
||||||
switch self {
|
switch self {
|
||||||
case .proxyResponseParsingFailed: return "Couldn't parse proxy response."
|
case .proxyResponseParsingFailed: return "Couldn't parse proxy response."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static func fetchContent(for url: String) -> Promise<String> {
|
public static func fetchContent(for url: String) -> Promise<String> {
|
||||||
let server = LokiStorageAPI.server
|
let server = LokiStorageAPI.server
|
||||||
let endpoints = [ "messenger-updates/feed" : "loki/v1/rss/messenger", "loki.network/feed" : "loki/v1/rss/loki" ]
|
let endpoints = [ "messenger-updates/feed" : "loki/v1/rss/messenger", "loki.network/feed" : "loki/v1/rss/loki" ]
|
||||||
let endpoint = endpoints.first { url.lowercased().contains($0.key) }!.value
|
let endpoint = endpoints.first { url.lowercased().contains($0.key) }!.value
|
||||||
let url = URL(string: server + "/" + endpoint)!
|
let url = URL(string: server + "/" + endpoint)!
|
||||||
let request = TSRequest(url: url)
|
let request = TSRequest(url: url)
|
||||||
return LokiFileServerProxy(for: server).perform(request).map { response -> String in
|
return LokiFileServerProxy(for: server).perform(request).map { response -> String in
|
||||||
guard let json = response as? JSON, let data = json["data"] as? String else { throw Error.proxyResponseParsingFailed }
|
guard let data = response as? Data, let json = try? JSONSerialization.jsonObject(with: data, options: []) as? JSON, let xml = json["data"] as? String else { throw Error.proxyResponseParsingFailed }
|
||||||
return data
|
return xml
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue