Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save JohnSundell/cd1914169d01e402ecf95686a6ffc4de to your computer and use it in GitHub Desktop.
Save JohnSundell/cd1914169d01e402ecf95686a6ffc4de to your computer and use it in GitHub Desktop.
class DataLoader {
enum Result {
case data(Data)
case error(Error)
}
private let engine: NetworkEngine
init(engine: NetworkEngine = URLSession.shared) {
self.engine = engine
}
func load(from url: URL, completionHandler: @escaping (Result) -> Void) {
engine.performRequest(for: url) { (data, response, error) in
if let error = error {
return completionHandler(.error(error))
}
completionHandler(.data(data ?? Data()))
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment