Несколько Api запросов с использованием RxJava и Retrofit

Такой вот вопрос. Мне нужно сделать несколько Api запросов с использованием Retrotit и RxJava. В первом запросе я получаю список из 20 фильмов. Мне нужно выводить список фильмов и инфу под каждым фильмом на экран. Чтобы получить инфу об фильме мне нужно сделать второй Api запрос передав туда id фильма и в ответ я получу один объект с инфой о фильме, а мне нужно получить 20 таких объектов с инфой для каждого фильма. Проблема в следующем, как это сделать с RxJava чтоб в репозитории я скомбинировал два запроса и вернул список из 20 фильмов с инфой для каждого фильма?

Мой репозиторий

class MoviesRepositoryImpl(
    private val schedulersIO: Scheduler,
    private val moviesApi: MoviesApi,
    private val moviesApiMapper: MoviesApiMapper
) : MoviesRepository {

     fun getPopularMovies(): Observable<PopularMoviesApi> {
         return moviesApi.getPopularMovies()
            .subscribeOn(schedulersIO)

    }

    private fun getMovieDetails(movieId: Int): Single<MovieDetailsModelApi> {
        return moviesApi.getMoviesDetails(movieId)
            .subscribeOn(schedulersIO)

    }

В этом репозитории нужно получить список из 20ти фильмов в первом запросе и список из 20ти объектов с инфой для каждого фильма, затем замапить эти данные и вернуть список фильмов с инфой


Ответы (1 шт):

Автор решения: Shams
api.getMovies() // Get list of movies
    .flatMapIterable { it } //  Converts list of movies into an Observable which emits every item in the list
    .flatMap { movie -> api.getMovieInfo(movie.id) } // Get movie info by movie id
    .toList() // Convert to list of movie info
→ Ссылка