diff --git a/src/main/java/org/gcube/datacatalogue/ckanutillibrary/server/DataCatalogue.java b/src/main/java/org/gcube/datacatalogue/ckanutillibrary/server/DataCatalogue.java index b5213bf..98d9c1a 100644 --- a/src/main/java/org/gcube/datacatalogue/ckanutillibrary/server/DataCatalogue.java +++ b/src/main/java/org/gcube/datacatalogue/ckanutillibrary/server/DataCatalogue.java @@ -381,6 +381,15 @@ public interface DataCatalogue { * @return */ CkanDataset getDataset(String datasetId, String apiKey); + + /** + * Retrieve a ckan dataset given its id. The CkanClient is used, without api key. The result + * is null also when the dataset is private. + * @param datasetId + * @return + * @throws Exception + */ + CkanDataset getDataset(String datasetId) throws Exception; /** * Set searchable field diff --git a/src/main/java/org/gcube/datacatalogue/ckanutillibrary/server/DataCatalogueImpl.java b/src/main/java/org/gcube/datacatalogue/ckanutillibrary/server/DataCatalogueImpl.java index 99eace7..7ed020f 100644 --- a/src/main/java/org/gcube/datacatalogue/ckanutillibrary/server/DataCatalogueImpl.java +++ b/src/main/java/org/gcube/datacatalogue/ckanutillibrary/server/DataCatalogueImpl.java @@ -1685,6 +1685,19 @@ public class DataCatalogueImpl implements DataCatalogue{ return null; } + @Override + public CkanDataset getDataset(String datasetId) throws Exception{ + logger.info("Request ckan dataset with id " + datasetId); + + // checks + checkNotNull(datasetId); + checkArgument(!datasetId.isEmpty()); + + CkanClient client = new CkanClient(CKAN_CATALOGUE_URL); + return client.getDataset(datasetId); + + } + @Override public boolean setSearchableField(String datasetId, boolean searchable) { @@ -2569,4 +2582,5 @@ public class DataCatalogueImpl implements DataCatalogue{ } return toReturn; } + } \ No newline at end of file