blob: 4964913adb03a043cb37c6c2faf2d99e4e2fca21 [file] [log] [blame]
package de.ids_mannheim.korap.web;
import java.net.URI;
import java.util.List;
import java.util.Map;
import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.exceptions.StatusCodes;
import jakarta.ws.rs.WebApplicationException;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
import jakarta.ws.rs.client.WebTarget;
import jakarta.ws.rs.core.MultivaluedMap;
/**
* @author hanl
* @date 10/12/2013
*/
// use for Piotr Ps. rest api connection
public class ClientsHandler {
private WebTarget service;
public ClientsHandler (URI address) {
Client client = ClientBuilder.newClient();
this.service = client.target(address);
}
public String getResponse (String path, String key, Object value)
throws KustvaktException {
try {
return service.path(path).queryParam(key, value).request().get(String.class);
}
catch (WebApplicationException e) {
throw new KustvaktException(StatusCodes.INVALID_REQUEST);
}
}
public String getResponse (MultivaluedMap<String, String> map, String ... paths)
throws KustvaktException {
try {
WebTarget resource = service;
for (String p : paths)
resource = resource.path(p);
for (Map.Entry<String, List<String>> e : map.entrySet()) {
for (String value : e.getValue())
resource = resource.queryParam(e.getKey(), value);
}
return resource.request().get(String.class);
}
catch (WebApplicationException e) {
throw new KustvaktException(StatusCodes.INVALID_REQUEST);
}
}
}