mirror of https://github.com/oxen-io/session-ios
				
				
				
			Implement RSS feed proxying
							parent
							
								
									51fb4ed21d
								
							
						
					
					
						commit
						5eca023422
					
				| @ -0,0 +1,26 @@ | ||||
| import PromiseKit | ||||
| 
 | ||||
| internal enum LokiRSSFeedProxy { | ||||
| 
 | ||||
|     internal enum Error : LocalizedError { | ||||
|         case proxyResponseParsingFailed | ||||
| 
 | ||||
|         internal var errorDescription: String? { | ||||
|            switch self { | ||||
|            case .proxyResponseParsingFailed: return "Couldn't parse proxy response." | ||||
|            } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     internal static func fetchContent(for url: String) -> Promise<String> { | ||||
|         let server = LokiStorageAPI.server | ||||
|         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 url = URL(string: server + "/" + endpoint)! | ||||
|         let request = TSRequest(url: url) | ||||
|         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 } | ||||
|             return data | ||||
|         } | ||||
|     } | ||||
| } | ||||
					Loading…
					
					
				
		Reference in New Issue