Skip to content

Instantly share code, notes, and snippets.

@David-Hackro
Last active August 8, 2018 02:17
Show Gist options
  • Save David-Hackro/68e7695eabc178ebdce2e4762c196077 to your computer and use it in GitHub Desktop.
Save David-Hackro/68e7695eabc178ebdce2e4762c196077 to your computer and use it in GitHub Desktop.
public void RemoteClass(){
//funcion con el service de getAllGeneros
private Observable<GenerosResponse> makeRequestToServiceGender() {
return service.getAllGeneros("movie","list","key"); //some network call
}
//funcion con el service de getAllMovies
private Observable<ResponseMovies> makeRequestToServiceMovies(Genre genre) {
return service.getAllMovies(genre.getId(),"movies","key","created_at.asc"); //some network call based on response from ServiceA
}
void doTheJob() {
makeRequestToServiceGender()
.flatMap(userResponse -> Observable.just(userResponse.getGenres())) //get list from response
.flatMapIterable(baseDatas -> baseDatas) //realizamos una interaccion por genero
.flatMap(new Func1<Genre, Observable<? extends ResponseMovies>>() {
@Override
public Observable<? extends ResponseMovies> call(Genre genre) {
return makeRequestToServiceMovies(genre);//consumimos el servicio peliculas con el objeto genero
}
}, new Func2<Genre, ResponseMovies, CollectionsMovies>() {
@Override
public CollectionsMovies call(Genre genre, ResponseMovies responseMovies) {
return new CollectionsMovies(genre,responseMovies);//Obtenemos ambas respuestas y creamos el objeto "CollectionsMovies"
}
}).
subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<CollectionsMovies>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(CollectionsMovies collectionsMovies) {
//Objeto el cual contiene el objeto genero y el objeto peliculas ;)
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment