diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/queries/templates/ResourceRegistryQueryTemplateClientImpl.java b/src/main/java/org/gcube/informationsystem/resourceregistry/queries/templates/ResourceRegistryQueryTemplateClientImpl.java index 0cf781f..df5f6f1 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/queries/templates/ResourceRegistryQueryTemplateClientImpl.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/queries/templates/ResourceRegistryQueryTemplateClientImpl.java @@ -2,7 +2,9 @@ package org.gcube.informationsystem.resourceregistry.queries.templates; import java.net.HttpURLConnection; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.gcube.com.fasterxml.jackson.databind.JavaType; import org.gcube.com.fasterxml.jackson.databind.JsonNode; @@ -29,19 +31,37 @@ public class ResourceRegistryQueryTemplateClientImpl implements ResourceRegistry private static final Logger logger = LoggerFactory.getLogger(ResourceRegistryQueryTemplateClientImpl.class); + private static final String ACCEPT_HTTP_HEADER_KEY = "Accept"; + private static final String CONTENT_TYPE_HTTP_HEADER_KEY = "Content-Type"; + protected final String address; + protected Map headers; + + public void addHeader(String name, String value) { + headers.put(name, value); + } + + protected GXHTTPStringRequest getGXHTTPStringRequest() { + GXHTTPStringRequest gxHTTPStringRequest = GXHTTPUtility.getGXHTTPStringRequest(address); + gxHTTPStringRequest.from(this.getClass().getSimpleName()); + for(String name : headers.keySet()) { + gxHTTPStringRequest.header(name, headers.get(name)); + } + return gxHTTPStringRequest; + } + public ResourceRegistryQueryTemplateClientImpl(String address) { this.address = address; + this.headers = new HashMap<>(); } @Override public List all() throws ResourceRegistryException { try { logger.trace("Going to list {}s", QueryTemplate.NAME); - GXHTTPStringRequest gxHTTPStringRequest = GXHTTPUtility.getGXHTTPStringRequest(address); - gxHTTPStringRequest.from(ResourceRegistryQueryTemplateClient.class.getSimpleName()); - gxHTTPStringRequest.header("Accept", GXConnection.APPLICATION_JSON_CHARSET_UTF_8); + GXHTTPStringRequest gxHTTPStringRequest = getGXHTTPStringRequest(); + gxHTTPStringRequest.header(ACCEPT_HTTP_HEADER_KEY, GXConnection.APPLICATION_JSON_CHARSET_UTF_8); gxHTTPStringRequest.path(QueryTemplatePath.QUERY_TEMPLATES_PATH_PART); HttpURLConnection httpURLConnection = gxHTTPStringRequest.get(); @@ -80,10 +100,9 @@ public class ResourceRegistryQueryTemplateClientImpl implements ResourceRegistry logger.trace("Going to create: {}", queryTemplate); QueryTemplate qt = ElementMapper.unmarshal(QueryTemplate.class, queryTemplate); - GXHTTPStringRequest gxHTTPStringRequest = GXHTTPUtility.getGXHTTPStringRequest(address); - gxHTTPStringRequest.from(ResourceRegistryQueryTemplateClient.class.getSimpleName()); - gxHTTPStringRequest.header("Accept", GXConnection.APPLICATION_JSON_CHARSET_UTF_8); - gxHTTPStringRequest.header("Content-type", GXConnection.APPLICATION_JSON_CHARSET_UTF_8); + GXHTTPStringRequest gxHTTPStringRequest = getGXHTTPStringRequest(); + gxHTTPStringRequest.header(ACCEPT_HTTP_HEADER_KEY, GXConnection.APPLICATION_JSON_CHARSET_UTF_8); + gxHTTPStringRequest.header(CONTENT_TYPE_HTTP_HEADER_KEY, GXConnection.APPLICATION_JSON_CHARSET_UTF_8); gxHTTPStringRequest.path(QueryTemplatePath.QUERY_TEMPLATES_PATH_PART); gxHTTPStringRequest.path(qt.getName()); @@ -104,9 +123,8 @@ public class ResourceRegistryQueryTemplateClientImpl implements ResourceRegistry public boolean exist(String queryTemplateName) throws ResourceRegistryException { try { logger.trace("Going to read {} with name {}", QueryTemplate.NAME, queryTemplateName); - GXHTTPStringRequest gxHTTPStringRequest = GXHTTPUtility.getGXHTTPStringRequest(address); - gxHTTPStringRequest.from(ResourceRegistryQueryTemplateClient.class.getSimpleName()); - gxHTTPStringRequest.header("Accept", GXConnection.APPLICATION_JSON_CHARSET_UTF_8); + GXHTTPStringRequest gxHTTPStringRequest = getGXHTTPStringRequest(); + gxHTTPStringRequest.header(ACCEPT_HTTP_HEADER_KEY, GXConnection.APPLICATION_JSON_CHARSET_UTF_8); gxHTTPStringRequest.path(QueryTemplatePath.QUERY_TEMPLATES_PATH_PART); gxHTTPStringRequest.path(queryTemplateName); @@ -148,9 +166,8 @@ public class ResourceRegistryQueryTemplateClientImpl implements ResourceRegistry public String readAsString(String queryTemplateName) throws QueryTemplateNotFoundException, ResourceRegistryException { try { logger.trace("Going to read {} with name {}", QueryTemplate.NAME, queryTemplateName); - GXHTTPStringRequest gxHTTPStringRequest = GXHTTPUtility.getGXHTTPStringRequest(address); - gxHTTPStringRequest.from(ResourceRegistryQueryTemplateClient.class.getSimpleName()); - gxHTTPStringRequest.header("Accept", GXConnection.APPLICATION_JSON_CHARSET_UTF_8); + GXHTTPStringRequest gxHTTPStringRequest = getGXHTTPStringRequest(); + gxHTTPStringRequest.header(ACCEPT_HTTP_HEADER_KEY, GXConnection.APPLICATION_JSON_CHARSET_UTF_8); gxHTTPStringRequest.path(QueryTemplatePath.QUERY_TEMPLATES_PATH_PART); gxHTTPStringRequest.path(queryTemplateName); @@ -185,10 +202,9 @@ public class ResourceRegistryQueryTemplateClientImpl implements ResourceRegistry logger.trace("Going to update: {}", queryTemplate); QueryTemplate qt = ElementMapper.unmarshal(QueryTemplate.class, queryTemplate); - GXHTTPStringRequest gxHTTPStringRequest = GXHTTPUtility.getGXHTTPStringRequest(address); - gxHTTPStringRequest.from(ResourceRegistryQueryTemplateClient.class.getSimpleName()); - gxHTTPStringRequest.header("Accept", GXConnection.APPLICATION_JSON_CHARSET_UTF_8); - gxHTTPStringRequest.header("Content-type", GXConnection.APPLICATION_JSON_CHARSET_UTF_8); + GXHTTPStringRequest gxHTTPStringRequest = getGXHTTPStringRequest(); + gxHTTPStringRequest.header(ACCEPT_HTTP_HEADER_KEY, GXConnection.APPLICATION_JSON_CHARSET_UTF_8); + gxHTTPStringRequest.header(CONTENT_TYPE_HTTP_HEADER_KEY, GXConnection.APPLICATION_JSON_CHARSET_UTF_8); gxHTTPStringRequest.path(QueryTemplatePath.QUERY_TEMPLATES_PATH_PART); gxHTTPStringRequest.path(qt.getName()); @@ -238,10 +254,9 @@ public class ResourceRegistryQueryTemplateClientImpl implements ResourceRegistry logger.trace("Going to run {} with the following parameters {}", QueryTemplate.NAME, params); } - GXHTTPStringRequest gxHTTPStringRequest = GXHTTPUtility.getGXHTTPStringRequest(address); - gxHTTPStringRequest.from(ResourceRegistryQueryTemplateClient.class.getSimpleName()); - gxHTTPStringRequest.header("Accept", GXConnection.APPLICATION_JSON_CHARSET_UTF_8); - gxHTTPStringRequest.header("Content-type", GXConnection.APPLICATION_JSON_CHARSET_UTF_8); + GXHTTPStringRequest gxHTTPStringRequest = getGXHTTPStringRequest(); + gxHTTPStringRequest.header(ACCEPT_HTTP_HEADER_KEY, GXConnection.APPLICATION_JSON_CHARSET_UTF_8); + gxHTTPStringRequest.header(CONTENT_TYPE_HTTP_HEADER_KEY, GXConnection.APPLICATION_JSON_CHARSET_UTF_8); gxHTTPStringRequest.path(QueryTemplatePath.QUERY_TEMPLATES_PATH_PART); gxHTTPStringRequest.path(name); @@ -285,9 +300,8 @@ public class ResourceRegistryQueryTemplateClientImpl implements ResourceRegistry public boolean delete(String queryTemplateName) throws QueryTemplateNotFoundException, ResourceRegistryException { try { logger.trace("Going to delete {} with name {}", QueryTemplate.NAME, queryTemplateName); - GXHTTPStringRequest gxHTTPStringRequest = GXHTTPUtility.getGXHTTPStringRequest(address); - gxHTTPStringRequest.from(ResourceRegistryQueryTemplateClient.class.getSimpleName()); - gxHTTPStringRequest.header("Accept", GXConnection.APPLICATION_JSON_CHARSET_UTF_8); + GXHTTPStringRequest gxHTTPStringRequest = getGXHTTPStringRequest(); + gxHTTPStringRequest.header(ACCEPT_HTTP_HEADER_KEY, GXConnection.APPLICATION_JSON_CHARSET_UTF_8); gxHTTPStringRequest.path(QueryTemplatePath.QUERY_TEMPLATES_PATH_PART); gxHTTPStringRequest.path(queryTemplateName);