blob: 16cfcd19eee406d5cb2e85afce937e467726bd6f [file] [log] [blame]
Michael Hanlca740d72015-06-16 10:04:58 +02001package de.ids_mannheim.korap.web;
2
Michael Hanlca740d72015-06-16 10:04:58 +02003import java.net.URI;
abcpro18e5ff512022-11-07 17:27:13 +00004import java.util.List;
5import java.util.Map;
Michael Hanlca740d72015-06-16 10:04:58 +02006
margaretha96c309d2023-08-16 12:24:12 +02007import de.ids_mannheim.korap.exceptions.KustvaktException;
8import de.ids_mannheim.korap.exceptions.StatusCodes;
9import jakarta.ws.rs.WebApplicationException;
10import jakarta.ws.rs.client.Client;
11import jakarta.ws.rs.client.ClientBuilder;
12import jakarta.ws.rs.client.WebTarget;
13import jakarta.ws.rs.core.MultivaluedMap;
14
Michael Hanlca740d72015-06-16 10:04:58 +020015/**
16 * @author hanl
17 * @date 10/12/2013
18 */
19// use for Piotr Ps. rest api connection
20public class ClientsHandler {
21
abcpro1d912a2c2022-11-07 17:10:50 +000022 private WebTarget service;
Michael Hanlca740d72015-06-16 10:04:58 +020023
Michael Hanl8abaf9e2016-05-23 16:46:35 +020024 public ClientsHandler (URI address) {
abcpro1d912a2c2022-11-07 17:10:50 +000025 Client client = ClientBuilder.newClient();
26 this.service = client.target(address);
Michael Hanlca740d72015-06-16 10:04:58 +020027 }
28
Michael Hanl8abaf9e2016-05-23 16:46:35 +020029 public String getResponse (String path, String key, Object value)
30 throws KustvaktException {
Michael Hanlca740d72015-06-16 10:04:58 +020031 try {
margaretha35e1ca22023-11-16 22:00:01 +010032 return service.path(path).queryParam(key, value).request()
33 .get(String.class);
Michael Hanl8abaf9e2016-05-23 16:46:35 +020034 }
abcpro163418f42022-11-09 20:35:09 +000035 catch (WebApplicationException e) {
margaretha5f5d3ed2023-08-30 23:48:52 +020036 throw new KustvaktException(StatusCodes.INVALID_REQUEST);
Michael Hanlca740d72015-06-16 10:04:58 +020037 }
38 }
39
margaretha35e1ca22023-11-16 22:00:01 +010040 public String getResponse (MultivaluedMap<String, String> map,
41 String ... paths) throws KustvaktException {
Michael Hanlca740d72015-06-16 10:04:58 +020042 try {
abcpro1d912a2c2022-11-07 17:10:50 +000043 WebTarget resource = service;
Michael Hanlca740d72015-06-16 10:04:58 +020044 for (String p : paths)
45 resource = resource.path(p);
abcpro18e5ff512022-11-07 17:27:13 +000046 for (Map.Entry<String, List<String>> e : map.entrySet()) {
47 for (String value : e.getValue())
48 resource = resource.queryParam(e.getKey(), value);
49 }
abcpro1241bc4f2022-11-07 20:13:57 +000050 return resource.request().get(String.class);
Michael Hanl8abaf9e2016-05-23 16:46:35 +020051 }
abcpro163418f42022-11-09 20:35:09 +000052 catch (WebApplicationException e) {
margaretha5f5d3ed2023-08-30 23:48:52 +020053 throw new KustvaktException(StatusCodes.INVALID_REQUEST);
Michael Hanlca740d72015-06-16 10:04:58 +020054 }
55 }
56
57}