RxJava2] Multiple Request einer ID zuordnen und als Map zurückgeben

  • RxJava2] Multiple Request einer ID zuordnen und als Map zurückgeben

    Nach langer Zeit wende ich mal mal wieder an dieses Forum =)

    Ich habe eine REST-Schnittelle, dort gebe ich eine id an und bekomme einen namen.
    Jetzt habe ich unter Android (zumindest auch, nicht nur) Retofit als Client Lib für die REST-Schnittelle verwendet.

    Mit folgenden Zeilen kann ich mir den passenden Namen zu einer ID holen:

    Quellcode

    1. @GET("warehouse/{wid}/name")
    2. Observable<Response<String>> getWarehouseName(@Path(WAREHOUSE_ID) String wid);

    Aus dem Programm wird das ganze so aufgerufen:

    Quellcode

    1. protected Observable<String> getNameObservable(final String wid) {
    2. Log.log(clazz, "getNameObservable() " + wid);
    3. if (wid == null) {
    4. throw new IllegalArgumentException("wid is null");
    5. }
    6. return warehousesService.getWarehouseName(wid).subscribeOn(Schedulers.newThread())
    7. .flatMap(response -> {
    8. try {
    9. CommonResponseChecks.checkResponse(response);
    10. return Observable.just(response.body());
    11. } catch (NotFoundException e) {
    12. meController.removeWarehouseId(wid).subscribeOn(Schedulers.newThread()).subscribe(() -> Log.log(clazz, "Warehouse " + wid + " removed from user"));
    13. return Observable.error(e);
    14. }
    15. });
    16. }
    Alles anzeigen

    Wie bekomme ich denn jetzt mit rxjava eine Methode getNames(Collection<String> wids) hin, welche die oben stehende Methode für jede ID aufruft und mir am ende eine Map<wid, name> zurück gibt?

    Ich bekomme es leider nicht hin die Map mit rxjava zusammen zu puzzeln =(

    lg. Dagobert