Используйте RxJava и Retrofit для перебора списка и дополнения результатов на основе подзапросов

Я использую модификацию, и я чувствую, что rxjava (с retrolambda) подойдет для следующего потока:

получить список виджетов (http)

для каждого виджета

а) получить список статей (http) для данного типа виджета
б) сохранить все это в БД
c) взять первую (последнюю) статью в списке и обновить widget.articleName и widget.articleUrl соответствующими значениями из этой статьи

преобразовать обратно в список и завершить

Однако я не уверен, что делать после шага 2а. Вот мой код до сих пор

apiService.getWidgets(token)
  .flatMapIterable(widgets -> widgets)
  .flatMap(widget -> apiService.getArticles(token, widget.type))
  ...
  .toList()
  .subscribe(
     modifiedWidgets -> saveWidgets(modifiedWidgets),
     throwable -> processWidgetError(throwable)
  );

Я поигрался с некоторыми операторами, но при цепочке я всегда сужаюсь слишком далеко (например, получаю хэндл для отдельной статьи) и затем больше не имею доступа к исходному виджету для внесения изменений.

@GET("/widgets")
Observable<List<Widget>> getWidgets(@Header("Authorization") String token);

@GET("/articles")
Observable<List<Article>> getArticles(@Header("Authorization") String token, @Query("type") String type);

Ответы на вопрос(1)

Ваш ответ на вопрос