Skip to content

Instantly share code, notes, and snippets.

@enginebai
Last active July 27, 2018 00:15
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 enginebai/9839b43ed5818ac2927caa2367762681 to your computer and use it in GitHub Desktop.
Save enginebai/9839b43ed5818ac2927caa2367762681 to your computer and use it in GitHub Desktop.
fun cacheApi1AndZipApi2(): Observable<Pair<Media, okhttp3.Response>> {
val api1: Observable<Response<Media>> = Api.api1().cache()
return api1.flatMap { response ->
if (response.isSuccessful) {
var uploadUrl = response.headers().get(ApiUtils.Header.LOCATION)
uploadUrl?.let { url ->
Api.api2(url).zipWith(api1) { r2, r1 -> Pair(r1.body(), r2) }
} ?: run {
throw Exceptions.propagate(NullPointerException("Media upload URL is empty"))
}
} else
Observable.error(ApiRequestException(response))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment