| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 1 | package de.ids_mannheim.korap.web; |
| 2 | |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 3 | import java.net.URI; |
| abcpro1 | 8e5ff51 | 2022-11-07 17:27:13 +0000 | [diff] [blame] | 4 | import java.util.List; |
| 5 | import java.util.Map; |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 6 | |
| margaretha | 96c309d | 2023-08-16 12:24:12 +0200 | [diff] [blame] | 7 | import de.ids_mannheim.korap.exceptions.KustvaktException; |
| 8 | import de.ids_mannheim.korap.exceptions.StatusCodes; |
| 9 | import jakarta.ws.rs.WebApplicationException; |
| 10 | import jakarta.ws.rs.client.Client; |
| 11 | import jakarta.ws.rs.client.ClientBuilder; |
| 12 | import jakarta.ws.rs.client.WebTarget; |
| 13 | import jakarta.ws.rs.core.MultivaluedMap; |
| 14 | |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 15 | /** |
| 16 | * @author hanl |
| 17 | * @date 10/12/2013 |
| 18 | */ |
| 19 | // use for Piotr Ps. rest api connection |
| 20 | public class ClientsHandler { |
| 21 | |
| abcpro1 | d912a2c | 2022-11-07 17:10:50 +0000 | [diff] [blame] | 22 | private WebTarget service; |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 23 | |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 24 | public ClientsHandler (URI address) { |
| abcpro1 | d912a2c | 2022-11-07 17:10:50 +0000 | [diff] [blame] | 25 | Client client = ClientBuilder.newClient(); |
| 26 | this.service = client.target(address); |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 27 | } |
| 28 | |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 29 | public String getResponse (String path, String key, Object value) |
| 30 | throws KustvaktException { |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 31 | try { |
| margaretha | 35e1ca2 | 2023-11-16 22:00:01 +0100 | [diff] [blame] | 32 | return service.path(path).queryParam(key, value).request() |
| 33 | .get(String.class); |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 34 | } |
| abcpro1 | 63418f4 | 2022-11-09 20:35:09 +0000 | [diff] [blame] | 35 | catch (WebApplicationException e) { |
| margaretha | 5f5d3ed | 2023-08-30 23:48:52 +0200 | [diff] [blame] | 36 | throw new KustvaktException(StatusCodes.INVALID_REQUEST); |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 37 | } |
| 38 | } |
| 39 | |
| margaretha | 35e1ca2 | 2023-11-16 22:00:01 +0100 | [diff] [blame] | 40 | public String getResponse (MultivaluedMap<String, String> map, |
| 41 | String ... paths) throws KustvaktException { |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 42 | try { |
| abcpro1 | d912a2c | 2022-11-07 17:10:50 +0000 | [diff] [blame] | 43 | WebTarget resource = service; |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 44 | for (String p : paths) |
| 45 | resource = resource.path(p); |
| abcpro1 | 8e5ff51 | 2022-11-07 17:27:13 +0000 | [diff] [blame] | 46 | for (Map.Entry<String, List<String>> e : map.entrySet()) { |
| 47 | for (String value : e.getValue()) |
| 48 | resource = resource.queryParam(e.getKey(), value); |
| 49 | } |
| abcpro1 | 241bc4f | 2022-11-07 20:13:57 +0000 | [diff] [blame] | 50 | return resource.request().get(String.class); |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 51 | } |
| abcpro1 | 63418f4 | 2022-11-09 20:35:09 +0000 | [diff] [blame] | 52 | catch (WebApplicationException e) { |
| margaretha | 5f5d3ed | 2023-08-30 23:48:52 +0200 | [diff] [blame] | 53 | throw new KustvaktException(StatusCodes.INVALID_REQUEST); |
| Michael Hanl | ca740d7 | 2015-06-16 10:04:58 +0200 | [diff] [blame] | 54 | } |
| 55 | } |
| 56 | |
| 57 | } |