in src/main/java/co/elastic/support/rest/RestEntryConfig.java [65:96]
private RestEntry buildRestEntryForVersion(String name, Map<String, Object> entry) {
String subdir = (String) ObjectUtils.defaultIfNull(entry.get("subdir"), "");
String extension = (String) ObjectUtils.defaultIfNull(entry.get("extension"), ".json");
boolean retry = (boolean) ObjectUtils.defaultIfNull(entry.get("retry"), false);
boolean showErrors = (boolean) ObjectUtils.defaultIfNull(entry.get("showErrors"), true);
Map<String, Object> versions = (Map<String, Object>) entry.get("versions");
for (Map.Entry<String, Object> urlVersion : versions.entrySet()) {
if (semver.satisfies(urlVersion.getKey())) {
if (urlVersion.getValue() instanceof String) {
return new RestEntry(name, subdir, extension, retry, (String) urlVersion.getValue(), showErrors);
// We allow it to be String,String or String,Map(url,paginate,spaceaware)
} else if (urlVersion.getValue() instanceof Map) {
Map<String, Object> info = (Map<String, Object>) urlVersion.getValue();
String url = (String) ObjectUtils.defaultIfNull(info.get("url"), null);
if (url == null) {
throw new RuntimeException("Undefined URL for REST entry (route)");
}
String pageableFieldName = (String) ObjectUtils.defaultIfNull(info.get("paginate"), null);
boolean spaceAware = (boolean) ObjectUtils.defaultIfNull(info.get("spaceaware"), false);
return new RestEntry(name, subdir, extension, retry, url, showErrors, pageableFieldName, spaceAware);
}
}
}
return null;
}