Skip to content

Instantly share code, notes, and snippets.

@NunoAlexandre
Created March 23, 2019 19:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save NunoAlexandre/a85f3200a78b2e95919c730a507d0e1c to your computer and use it in GitHub Desktop.
Save NunoAlexandre/a85f3200a78b2e95919c730a507d0e1c to your computer and use it in GitHub Desktop.
@discardableResult
func attemptDownload(forItem item: Item) -> Promise<URL> {
if !canSubmitDownload(forItem: item) {
return Promise.reject(DownloadError.duplicatedDownload)
}
else if !SettingsManager.shared.canDownloadOrStream() {
let error = DownloadError.canNotUseInternet
self.registerFailedDownload(item, withError: error)
return Promise.reject(error)
}
else {
return
self
.registerStartOfDownload(item)
.then { self.download(item: item) }
.then { self.unpackDownloaded(item: item, at: $0) }
.then { self.moveToDownloadsDirectory(item, from: $0) }
.chain { _ in self.registerSuccessfulDownload(item) }
.onErrorDo { self.registerFailedDownload(item, withError: $0) }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment