blob: 0207c540e686cee0d10d0259b72e8ffa004dac5b [file] [log] [blame]
package de.ids_mannheim.korap.web;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.UniformInterfaceException;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
import com.sun.jersey.core.util.MultivaluedMapImpl;
import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.exceptions.StatusCodes;
import javax.ws.rs.core.MultivaluedMap;
import java.net.URI;
/**
* @author hanl
* @date 10/12/2013
*/
// use for Piotr Ps. rest api connection
public class ClientsHandler {
private WebResource service;
public ClientsHandler (URI address) {
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
this.service = client.resource(address);
}
public String getResponse (String path, String key, Object value)
throws KustvaktException {
MultivaluedMap map = new MultivaluedMapImpl();
map.add(key, value);
try {
return service.path(path).queryParams(map).get(String.class);
}
catch (UniformInterfaceException e) {
throw new KustvaktException(StatusCodes.REQUEST_INVALID);
}
}
public String getResponse (MultivaluedMap map, String ... paths)
throws KustvaktException {
try {
WebResource resource = service;
for (String p : paths)
resource = resource.path(p);
resource = resource.queryParams(map);
return resource.get(String.class);
}
catch (UniformInterfaceException e) {
throw new KustvaktException(StatusCodes.REQUEST_INVALID);
}
}
}