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

  • 0 Antworten
  • Letztes Antwortdatum
DagobertDokate

DagobertDokate

Dauer-User
137
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:
Code:
@GET("warehouse/{wid}/name")
Observable<Response<String>> getWarehouseName(@Path(WAREHOUSE_ID) String wid);

Aus dem Programm wird das ganze so aufgerufen:

Code:
protected Observable<String> getNameObservable(final String wid) {
    Log.log(clazz, "getNameObservable() " + wid);
    if (wid == null) {
        throw new IllegalArgumentException("wid is null");
    }
    return warehousesService.getWarehouseName(wid).subscribeOn(Schedulers.newThread())
            .flatMap(response -> {
                try {
                    CommonResponseChecks.checkResponse(response);
                    return Observable.just(response.body());
                } catch (NotFoundException e) {
                    meController.removeWarehouseId(wid).subscribeOn(Schedulers.newThread()).subscribe(() -> Log.log(clazz, "Warehouse " + wid + " removed from user"));
                    return Observable.error(e);
                }
            });
}

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
 
Zurück
Oben Unten