dnet-docker/dnet-app/libs/dnet-app-common/src/main/java/eu/dnetlib/common/clients/SimpleResourceClient.java

79 lines
2.6 KiB
Java
Raw Normal View History

2023-09-26 14:52:20 +02:00
package eu.dnetlib.common.clients;
2023-09-19 12:36:14 +02:00
2023-11-27 13:36:05 +01:00
import java.io.StringWriter;
2023-10-13 14:52:58 +02:00
import java.util.Arrays;
import java.util.HashMap;
2023-09-28 12:02:00 +02:00
import java.util.List;
2023-10-13 14:52:58 +02:00
import java.util.Map;
2023-09-28 12:02:00 +02:00
2023-11-27 13:36:05 +01:00
import org.apache.commons.lang3.StringUtils;
2023-09-19 12:36:14 +02:00
import eu.dnetlib.domain.resource.SimpleResource;
2023-09-26 14:52:20 +02:00
public class SimpleResourceClient extends DnetServiceClient {
2023-09-28 12:02:00 +02:00
public List<String> listResources(final String type) {
2023-12-11 12:48:15 +01:00
return Arrays.asList(httpGet("/api/resources/byType/{type}", String[].class, Map.of("type", type)));
2023-09-28 12:02:00 +02:00
}
2023-10-13 14:52:58 +02:00
public String getResourceContent(final String id) {
2023-12-11 12:48:15 +01:00
return httpGet("/api/resources/{id}/content", String.class, Map.of("id", id));
2023-09-26 14:52:20 +02:00
}
2023-09-19 12:36:14 +02:00
public SimpleResource findResource(final String id) {
2023-12-11 12:48:15 +01:00
return httpGet("/api/resources/{id}/metadata", SimpleResource.class, Map.of("id", id));
2023-09-19 12:36:14 +02:00
}
2024-01-04 12:31:47 +01:00
public SimpleResource findResource(final String type, final String name) {
return httpGet("/api/resources/byType/{type}/{name}/metadata", SimpleResource.class, Map.of("type", type, "name", name));
}
2023-09-19 12:36:14 +02:00
public <T> T findResourceContent(final String id, final Class<T> clazz) {
2023-12-11 12:48:15 +01:00
return httpGet("/api/resources/{id}/content", clazz, Map.of("id", id));
2023-09-19 12:36:14 +02:00
}
2023-12-21 11:29:18 +01:00
public <T> T findResourceContent(final String type, final String name, final Class<T> clazz) {
return httpGet("/api/resources/byType/{type}/{name}/content", clazz, Map.of("type", type, "name", name));
}
2023-09-19 12:36:14 +02:00
public void deleteResource(final String id) {
2023-12-11 12:48:15 +01:00
httpDelete("/api/resources/{id}", Map.of("id", id));
2023-09-19 12:36:14 +02:00
}
2023-10-13 14:52:58 +02:00
public void updateResourceContent(final String id, final Object content) {
2023-12-11 12:48:15 +01:00
httpPostObject("/api/resources/{id}/content", content, Void.class, Map.of("id", id));
2023-10-13 14:52:58 +02:00
}
2023-09-28 12:02:00 +02:00
2023-10-13 14:52:58 +02:00
public void updateResourceMetadata(final String id, final Object content) {
2023-12-11 12:48:15 +01:00
httpPostObject("/api/resources/{id}/metadata", content, Void.class, Map.of("id", id));
2023-09-28 12:02:00 +02:00
}
2023-10-13 14:52:58 +02:00
public SimpleResource prepareNewResource(final String name,
final String desc,
final String type,
final String subtype,
final String description,
final Object content) {
final Map<String, Object> params = new HashMap<>();
params.put("name", name);
params.put("type", type);
params.put("subtype", subtype);
params.put("description", description);
params.put("content", content);
2023-12-11 12:48:15 +01:00
return httpPostParams("/api/resources/", params, SimpleResource.class, Map.of());
2023-09-28 12:02:00 +02:00
}
2023-11-27 13:36:05 +01:00
public List<SimpleResource> findResources(final String type, final String subType) {
2023-12-11 12:48:15 +01:00
final StringWriter path = new StringWriter();
path.append("/api/resources/byType/{type}");
2023-11-27 13:36:05 +01:00
if (StringUtils.isNotBlank(subType)) {
2023-12-11 12:48:15 +01:00
path.append("?subtype={subtype}");
2023-11-27 13:36:05 +01:00
}
2023-12-11 12:48:15 +01:00
return Arrays.asList(httpGet(path.toString(), SimpleResource[].class, Map.of("type", type, "subtype", subType)));
2023-11-27 13:36:05 +01:00
}
2023-09-19 12:36:14 +02:00
}