public class StdA1Client implements A1Client {
private static final String URL_PREFIX = "/A1-P/v1";
- private static final String POLICYTYPES_URI = "/policytypes";
+ private static final String POLICY_TYPES_URI = "/policytypes";
private static final String POLICY_TYPE_ID = "policyTypeId";
private static final String POLICIES_URI = "/policies";
@Override
public Mono<List<String>> getPolicyIdentities() {
- return restClient.get(POLICIES_URI) //
- .flatMap(this::parseJsonArrayOfString);
+ return getPolicyIds() //
+ .collectList();
}
@Override
@Override
public Mono<List<String>> getPolicyTypeIdentities() {
- return restClient.get(POLICYTYPES_URI) //
- .flatMap(this::parseJsonArrayOfString);
+ return restClient.get(POLICY_TYPES_URI) //
+ .flatMapMany(this::parseJsonArrayOfString) //
+ .collectList();
}
@Override
@Override
public Flux<String> deleteAllPolicies() {
- return getPolicyIdentities() //
- .flatMapMany(policyIds -> Flux.fromIterable(policyIds)) // )
- .flatMap(policyId -> deletePolicyById(policyId)); //
+ return getPolicyIds() //
+ .flatMap(this::deletePolicyById); //
}
@Override
return restClient.get(uri);
}
+ private Flux<String> getPolicyIds() {
+ return restClient.get(POLICIES_URI) //
+ .flatMapMany(this::parseJsonArrayOfString);
+ }
+
private Mono<String> deletePolicyById(String policyId) {
String uri = POLICY_DELETE_URI.buildAndExpand(policyId).toUriString();
return restClient.delete(uri);
}
- private Mono<List<String>> parseJsonArrayOfString(String inputString) {
+ private Flux<String> parseJsonArrayOfString(String inputString) {
try {
List<String> arrayList = new ArrayList<>();
JSONArray jsonArray = new JSONArray(inputString);
arrayList.add(jsonArray.getString(i));
}
logger.debug("A1 client: received list = {}", arrayList);
- return Mono.just(arrayList);
+ return Flux.fromIterable(arrayList);
} catch (JSONException ex) { // invalid json
- return Mono.error(ex);
+ return Flux.error(ex);
}
}