updated the getDataset
This commit is contained in:
parent
484f354170
commit
427e00903d
|
@ -40,14 +40,14 @@ public class GCatCaller {
|
||||||
/**
|
/**
|
||||||
* Gets the dataset for name.
|
* Gets the dataset for name.
|
||||||
*
|
*
|
||||||
* @param datasetIdOrName the dataset id or name
|
* @param datasetName the dataset name
|
||||||
* @return the jsonValue
|
* @return the jsonValue
|
||||||
* @throws WebApplicationException
|
* @throws WebApplicationException the web application exception
|
||||||
* @throws MalformedURLException the malformed URL exception
|
* @throws MalformedURLException the malformed URL exception
|
||||||
*/
|
*/
|
||||||
public String getDatasetForName(String datasetIdOrName) throws WebApplicationException, MalformedURLException {
|
public String getDatasetForName(String datasetName) throws WebApplicationException, MalformedURLException {
|
||||||
LOG.debug("Get dataset for name "+datasetIdOrName+ "called");
|
LOG.debug("Get dataset for name "+datasetName+ "called");
|
||||||
return new Item().read(datasetIdOrName);
|
return new Item().read(datasetName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ public class GCatCaller {
|
||||||
* @param jsonDataset the json dataset
|
* @param jsonDataset the json dataset
|
||||||
* @param socialPost if true sends the social post
|
* @param socialPost if true sends the social post
|
||||||
* @return the jsonValue
|
* @return the jsonValue
|
||||||
* @throws WebApplicationException
|
* @throws WebApplicationException the web application exception
|
||||||
* @throws MalformedURLException the malformed URL exception
|
* @throws MalformedURLException the malformed URL exception
|
||||||
*/
|
*/
|
||||||
public String createDataset(String jsonDataset, boolean socialPost) throws WebApplicationException, MalformedURLException {
|
public String createDataset(String jsonDataset, boolean socialPost) throws WebApplicationException, MalformedURLException {
|
||||||
|
@ -122,9 +122,8 @@ public class GCatCaller {
|
||||||
* @param datasetName the dataset name
|
* @param datasetName the dataset name
|
||||||
* @param jsonObj the json obj
|
* @param jsonObj the json obj
|
||||||
* @return the string
|
* @return the string
|
||||||
* @throws MalformedURLException
|
* @throws WebApplicationException the web application exception
|
||||||
* @throws WebApplicationException
|
* @throws MalformedURLException the malformed URL exception
|
||||||
* @throws Exception the exception
|
|
||||||
*/
|
*/
|
||||||
public String patchDataset(String datasetName, JSONObject jsonObj) throws WebApplicationException, MalformedURLException {
|
public String patchDataset(String datasetName, JSONObject jsonObj) throws WebApplicationException, MalformedURLException {
|
||||||
LOG.debug("Patch dataset called");
|
LOG.debug("Patch dataset called");
|
||||||
|
|
|
@ -109,11 +109,11 @@ public interface DataCatalogue {
|
||||||
/**
|
/**
|
||||||
* Retrieve a ckan dataset given its id.
|
* Retrieve a ckan dataset given its id.
|
||||||
*
|
*
|
||||||
* @param datasetId the dataset id
|
* @param datasetIdOrName the dataset id or name
|
||||||
* @param apiKey the api key. If null uses gCat to get the Dataset
|
* @param username the username
|
||||||
* @return the dataset
|
* @return the dataset
|
||||||
*/
|
*/
|
||||||
CkanDataset getDataset(String datasetId, String apiKey);
|
CkanDataset getDataset(String datasetIdOrName, String username);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the user role by group.
|
* Gets the user role by group.
|
||||||
|
@ -399,6 +399,21 @@ public interface DataCatalogue {
|
||||||
* @return true, if successful
|
* @return true, if successful
|
||||||
*/
|
*/
|
||||||
boolean assignDatasetToGroup(String groupNameOrId, String datasetNameOrId);
|
boolean assignDatasetToGroup(String groupNameOrId, String datasetNameOrId);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Patch a product with product id productId by using the couples in customFieldsToChange.
|
||||||
|
* NOTE: only the specified custom fields will be changed. If a custom field with a given key
|
||||||
|
* already exists, and removeOld is set to false, the new values are added at the end of the list. Otherwise they are lost.
|
||||||
|
*
|
||||||
|
* @param productId the product id
|
||||||
|
* @param username the username
|
||||||
|
* @param customFieldsToChange the custom fields to change
|
||||||
|
* @param removeOld the remove old
|
||||||
|
* @return true, if successful
|
||||||
|
*/
|
||||||
|
boolean patchProductCustomFields(String productId, String username, Map<String, List<String>> customFieldsToChange,
|
||||||
|
boolean removeOld);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -425,4 +440,6 @@ public interface DataCatalogue {
|
||||||
*/
|
*/
|
||||||
void assignRolesOtherOrganization(String username, String sourceOrganization, RolesCkanGroupOrOrg currentRole);
|
void assignRolesOtherOrganization(String username, String sourceOrganization, RolesCkanGroupOrOrg currentRole);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,12 +3,6 @@ package org.gcube.datacatalogue.utillibrary.server;
|
||||||
import static com.google.common.base.Preconditions.checkArgument;
|
import static com.google.common.base.Preconditions.checkArgument;
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.net.HttpURLConnection;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.net.URLConnection;
|
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
@ -31,7 +25,6 @@ import org.apache.http.entity.StringEntity;
|
||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
import org.apache.http.impl.client.HttpClientBuilder;
|
import org.apache.http.impl.client.HttpClientBuilder;
|
||||||
import org.apache.http.util.EntityUtils;
|
import org.apache.http.util.EntityUtils;
|
||||||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
|
||||||
import org.gcube.common.scope.api.ScopeProvider;
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
import org.gcube.common.scope.impl.ScopeBean;
|
import org.gcube.common.scope.impl.ScopeBean;
|
||||||
import org.gcube.common.scope.impl.ScopeBean.Type;
|
import org.gcube.common.scope.impl.ScopeBean.Type;
|
||||||
|
@ -54,6 +47,7 @@ import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanDataset;
|
||||||
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanGroup;
|
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanGroup;
|
||||||
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanLicense;
|
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanLicense;
|
||||||
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanOrganization;
|
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanOrganization;
|
||||||
|
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanPair;
|
||||||
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanResource;
|
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanResource;
|
||||||
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanUser;
|
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanUser;
|
||||||
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.exceptions.JackanException;
|
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.exceptions.JackanException;
|
||||||
|
@ -118,8 +112,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The ckan catalogue url and database will be discovered in this scope
|
* The ckan catalogue url and database will be discovered in this scope.
|
||||||
* @param scope
|
*
|
||||||
|
* @param scope the scope
|
||||||
* @throws Exception if unable to find datacatalogue info
|
* @throws Exception if unable to find datacatalogue info
|
||||||
*/
|
*/
|
||||||
public DataCatalogueImpl(String scope) throws Exception{
|
public DataCatalogueImpl(String scope) throws Exception{
|
||||||
|
@ -174,12 +169,18 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
ckanCaller = new ExtendCkanClient(CKAN_CATALOGUE_URL, CKAN_TOKEN_SYS);
|
ckanCaller = new ExtendCkanClient(CKAN_CATALOGUE_URL, CKAN_TOKEN_SYS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getCatalogueUrl()
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String getCatalogueUrl() {
|
public String getCatalogueUrl() {
|
||||||
return CKAN_CATALOGUE_URL;
|
return CKAN_CATALOGUE_URL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getPortletUrl()
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String getPortletUrl() {
|
public String getPortletUrl() {
|
||||||
|
|
||||||
|
@ -207,6 +208,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#findLicenseIdByLicenseTitle(java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String findLicenseIdByLicenseTitle(String chosenLicense) {
|
public String findLicenseIdByLicenseTitle(String chosenLicense) {
|
||||||
LOG.debug("Requested license id");
|
LOG.debug("Requested license id");
|
||||||
|
@ -225,6 +229,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getLicenseTitles()
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<String> getLicenseTitles() {
|
public List<String> getLicenseTitles() {
|
||||||
|
|
||||||
|
@ -244,6 +251,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getLicenses()
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<CkanLicense> getLicenses() {
|
public List<CkanLicense> getLicenses() {
|
||||||
LOG.debug("Request for CKAN licenses (original jackan objects are going to be retrieved)");
|
LOG.debug("Request for CKAN licenses (original jackan objects are going to be retrieved)");
|
||||||
|
@ -251,38 +261,36 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
return ckanCaller.getLicenseList();
|
return ckanCaller.getLicenseList();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
*
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getDataset(java.lang.String, java.lang.String)
|
||||||
* @see
|
|
||||||
* org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogue#getDataset(java.
|
|
||||||
* lang.String, java.lang.String)
|
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public CkanDataset getDataset(String datasetId, String apiKey) {
|
public CkanDataset getDataset(String datasetIdOrName, String username) {
|
||||||
LOG.info("Request ckan dataset with id " + datasetId);
|
LOG.info("Called getDataset with id or name" + datasetIdOrName+ " and username: "+username);
|
||||||
|
|
||||||
// checks
|
// checks
|
||||||
checkNotNull(datasetId);
|
checkNotNull(datasetIdOrName);
|
||||||
checkArgument(!datasetId.isEmpty());
|
checkArgument(!datasetIdOrName.isEmpty());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
if (apiKey != null && !apiKey.isEmpty()) {
|
if (username != null && !username.isEmpty()) {
|
||||||
LOG.info("API-KEY found. Calling the " + ExtendCkanClient.class.getSimpleName());
|
LOG.info("username found. Calling the " + ExtendCkanClient.class.getSimpleName());
|
||||||
|
String apiKey = getApiKeyFromUsername(username);
|
||||||
ExtendCkanClient client = new ExtendCkanClient(CKAN_CATALOGUE_URL, apiKey);
|
ExtendCkanClient client = new ExtendCkanClient(CKAN_CATALOGUE_URL, apiKey);
|
||||||
return client.getDataset(datasetId);
|
return client.getDataset(datasetIdOrName);
|
||||||
}
|
}
|
||||||
|
|
||||||
String authzToken = SecurityTokenProvider.instance.get();
|
// String authzToken = SecurityTokenProvider.instance.get();
|
||||||
if (authzToken != null && !authzToken.isEmpty()) {
|
// if (authzToken != null && !authzToken.isEmpty()) {
|
||||||
LOG.info("gcube-token found. Calling the gCat client");
|
// LOG.info("gcube-token found. Calling the gCat client");
|
||||||
String jsonDataset = gCatCaller.getDatasetForName(datasetId);
|
// String jsonDataset = gCatCaller.getDatasetForName(datasetId);
|
||||||
return MarshUnmarshCkanObject.toCkanDataset(jsonDataset, METHOD.TO_READ);
|
// return MarshUnmarshCkanObject.toCkanDataset(jsonDataset, METHOD.TO_READ);
|
||||||
}
|
// }
|
||||||
|
|
||||||
LOG.info("No api-key or gcube-token found. Calling Ckan Client without API-KEY");
|
LOG.info("No username found. Calling Ckan Client without API-KEY");
|
||||||
return ckanCaller.getDataset(datasetId);
|
return ckanCaller.getDataset(datasetIdOrName);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOG.error("Unable to retrieve such dataset, returning null ...", e);
|
LOG.error("Unable to retrieve such dataset, returning null ...", e);
|
||||||
|
@ -292,6 +300,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getUnencryptedUrlFromDatasetIdOrName(java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String getUnencryptedUrlFromDatasetIdOrName(String datasetIdOrName) {
|
public String getUnencryptedUrlFromDatasetIdOrName(String datasetIdOrName) {
|
||||||
LOG.debug("Request coming for getting dataset url (not encrypted) of dataset with name/id " + datasetIdOrName);
|
LOG.debug("Request coming for getting dataset url (not encrypted) of dataset with name/id " + datasetIdOrName);
|
||||||
|
@ -323,6 +334,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getUserRoleByGroup(java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Map<CkanGroup, RolesCkanGroupOrOrg>> getUserRoleByGroup(String username) {
|
public Map<String, Map<CkanGroup, RolesCkanGroupOrOrg>> getUserRoleByGroup(String username) {
|
||||||
LOG.info("Get user role by group called. The username is: " + username);
|
LOG.info("Get user role by group called. The username is: " + username);
|
||||||
|
@ -354,6 +368,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getUserRoleByOrganization(java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Map<CkanOrganization, RolesCkanGroupOrOrg>> getUserRoleByOrganization(String username) {
|
public Map<String, Map<CkanOrganization, RolesCkanGroupOrOrg>> getUserRoleByOrganization(String username) {
|
||||||
LOG.info("Get user role by organization called. The username is: " + username);
|
LOG.info("Get user role by organization called. The username is: " + username);
|
||||||
|
@ -387,11 +404,12 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve an url for the tuple scope, entity, entity name
|
* Retrieve an url for the tuple scope, entity, entity name.
|
||||||
*
|
*
|
||||||
* @param context
|
* @param context the context
|
||||||
* @param entityContext
|
* @param entityContext the entity context
|
||||||
* @param entityName
|
* @param entityName the entity name
|
||||||
|
* @return the url for product
|
||||||
*/
|
*/
|
||||||
private String getUrlForProduct(String context, EntityContext entityContext, String entityName) {
|
private String getUrlForProduct(String context, EntityContext entityContext, String entityName) {
|
||||||
|
|
||||||
|
@ -424,52 +442,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
// /**
|
/* (non-Javadoc)
|
||||||
// * Retrieve an url for the tuple scope, entity, entity name
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getLandingPages()
|
||||||
// * @param context
|
*/
|
||||||
// * @param entityContext
|
|
||||||
// * @param entityName
|
|
||||||
// */
|
|
||||||
// private String getUrlForProduct(String context, EntityContext entityContext, String entityName){
|
|
||||||
//
|
|
||||||
// String toReturn = null;
|
|
||||||
//
|
|
||||||
// try {
|
|
||||||
// LOG.debug("URI-Resolver URL: "+getUriResolverUrl());
|
|
||||||
// URL url = new URL(getUriResolverUrl());
|
|
||||||
// URLConnection con = url.openConnection();
|
|
||||||
// HttpURLConnection http = (HttpURLConnection)con;
|
|
||||||
// http.setRequestMethod("POST"); // PUT is another valid option
|
|
||||||
// http.setDoOutput(true);
|
|
||||||
// http.setRequestProperty("Content-Type", ContentType.APPLICATION_JSON.toString());
|
|
||||||
//
|
|
||||||
// JSONObject requestEntity = new JSONObject();
|
|
||||||
// requestEntity.put("gcube_scope", context);
|
|
||||||
// requestEntity.put("entity_context", entityContext.toString());
|
|
||||||
// requestEntity.put("entity_name", entityName);
|
|
||||||
//
|
|
||||||
// try(OutputStream os = con.getOutputStream()) {
|
|
||||||
// byte[] input = requestEntity.toJSONString().getBytes("utf-8");
|
|
||||||
// os.write(input, 0, input.length);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// try (BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"))) {
|
|
||||||
// StringBuilder response = new StringBuilder();
|
|
||||||
// String responseLine = null;
|
|
||||||
// while ((responseLine = br.readLine()) != null) {
|
|
||||||
// response.append(responseLine.trim());
|
|
||||||
// }
|
|
||||||
// toReturn = response.toString();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// }catch (Exception e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// return toReturn;
|
|
||||||
// }
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LandingPages getLandingPages() throws Exception {
|
public LandingPages getLandingPages() throws Exception {
|
||||||
|
|
||||||
|
@ -481,20 +456,27 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
return landingPages;
|
return landingPages;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getUriResolverUrl()
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String getUriResolverUrl() {
|
public String getUriResolverUrl() {
|
||||||
return URI_RESOLVER_URL;
|
return URI_RESOLVER_URL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if the manage product is enabled
|
* Check if the manage product is enabled.
|
||||||
* @return
|
*
|
||||||
|
* @return true, if is manage product enabled
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isManageProductEnabled() {
|
public boolean isManageProductEnabled() {
|
||||||
return MANAGE_PRODUCT_BUTTON;
|
return MANAGE_PRODUCT_BUTTON;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getGroupByName(java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public CkanGroup getGroupByName(String name) {
|
public CkanGroup getGroupByName(String name) {
|
||||||
String ckanName = CatalogueUtilMethods.fromGroupTitleToName(name);
|
String ckanName = CatalogueUtilMethods.fromGroupTitleToName(name);
|
||||||
|
@ -506,12 +488,18 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#isNotificationToUsersEnabled()
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isNotificationToUsersEnabled() {
|
public boolean isNotificationToUsersEnabled() {
|
||||||
return ALERT_USERS_ON_POST_CREATION;
|
return ALERT_USERS_ON_POST_CREATION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getOrganizationsByUser(java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<CkanOrganization> getOrganizationsByUser(String username) {
|
public List<CkanOrganization> getOrganizationsByUser(String username) {
|
||||||
|
|
||||||
|
@ -541,6 +529,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getGroupsByUser(java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<CkanGroup> getGroupsByUser(String username) {
|
public List<CkanGroup> getGroupsByUser(String username) {
|
||||||
LOG.debug("Requested groups for user " + username);
|
LOG.debug("Requested groups for user " + username);
|
||||||
|
@ -569,6 +560,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getOrganizationsIds()
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<String> getOrganizationsIds() {
|
public List<String> getOrganizationsIds() {
|
||||||
|
|
||||||
|
@ -583,6 +577,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getOrganizationsNames()
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<String> getOrganizationsNames() {
|
public List<String> getOrganizationsNames() {
|
||||||
|
|
||||||
|
@ -597,6 +594,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getOrganizationsNamesByUser(java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<String> getOrganizationsNamesByUser(String username) {
|
public List<String> getOrganizationsNamesByUser(String username) {
|
||||||
|
|
||||||
|
@ -619,6 +619,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getRoleOfUserInOrganization(java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String getRoleOfUserInOrganization(String username, String orgName) {
|
public String getRoleOfUserInOrganization(String username, String orgName) {
|
||||||
|
|
||||||
|
@ -660,6 +663,12 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the api key from username.
|
||||||
|
*
|
||||||
|
* @param username the username
|
||||||
|
* @return the api key from username
|
||||||
|
*/
|
||||||
private String getApiKeyFromUsername(String username) {
|
private String getApiKeyFromUsername(String username) {
|
||||||
|
|
||||||
LOG.debug("Request api key for user = " + username);
|
LOG.debug("Request api key for user = " + username);
|
||||||
|
@ -698,6 +707,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#existProductWithNameOrId(java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean existProductWithNameOrId(String nameOrId) {
|
public boolean existProductWithNameOrId(String nameOrId) {
|
||||||
|
|
||||||
|
@ -714,6 +726,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getOrganizationByIdOrName(java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public CkanOrganization getOrganizationByIdOrName(String idOrName) {
|
public CkanOrganization getOrganizationByIdOrName(String idOrName) {
|
||||||
|
|
||||||
|
@ -733,12 +748,14 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if the user has this role into the organization/group with
|
* Check if the user has this role into the organization/group with
|
||||||
* groupOrOrganization name
|
* groupOrOrganization name.
|
||||||
*
|
*
|
||||||
* @param ckanUsername
|
* @param ckanUsername the ckan username
|
||||||
* @param organizationName
|
* @param groupOrOrganization the group or organization
|
||||||
* @param correspondentRoleToCheck
|
* @param correspondentRoleToCheck the correspondent role to check
|
||||||
|
* @param group the group
|
||||||
* @return true if he has the role, false otherwise
|
* @return true if he has the role, false otherwise
|
||||||
|
* @throws Exception the exception
|
||||||
*/
|
*/
|
||||||
protected boolean isRoleAlreadySet(String ckanUsername, String groupOrOrganization,
|
protected boolean isRoleAlreadySet(String ckanUsername, String groupOrOrganization,
|
||||||
RolesCkanGroupOrOrg correspondentRoleToCheck, boolean group) throws Exception {
|
RolesCkanGroupOrOrg correspondentRoleToCheck, boolean group) throws Exception {
|
||||||
|
@ -765,11 +782,10 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Just check if the group exists
|
* Just check if the group exists.
|
||||||
*
|
*
|
||||||
* @param nameOrId
|
* @param nameOrId the name or id
|
||||||
* @param client
|
* @return the ckan group
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
private CkanGroup groupExists(String nameOrId) {
|
private CkanGroup groupExists(String nameOrId) {
|
||||||
|
|
||||||
|
@ -788,6 +804,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getParentGroups(java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<CkanGroup> getParentGroups(String groupName, String apiKey) {
|
public List<CkanGroup> getParentGroups(String groupName, String apiKey) {
|
||||||
// checks
|
// checks
|
||||||
|
@ -804,6 +823,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getOrganizationByName(java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public CkanOrganization getOrganizationByName(String name) {
|
public CkanOrganization getOrganizationByName(String name) {
|
||||||
|
|
||||||
|
@ -821,29 +843,24 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*
|
/**
|
||||||
*
|
* *****************************************************************************
|
||||||
*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* WRITE OPERATIONS
|
* WRITE OPERATIONS
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
* *****************************************************************************.
|
||||||
*
|
*
|
||||||
*
|
* @param username the username
|
||||||
*
|
* @param organizationName the organization name
|
||||||
*
|
* @param correspondentRoleToCheck the correspondent role to check
|
||||||
*
|
* @return true, if successful
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean checkRoleIntoOrganization(String username, String organizationName,
|
public boolean checkRoleIntoOrganization(String username, String organizationName,
|
||||||
RolesCkanGroupOrOrg correspondentRoleToCheck) {
|
RolesCkanGroupOrOrg correspondentRoleToCheck) {
|
||||||
|
@ -903,6 +920,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#checkRoleIntoGroup(java.lang.String, java.lang.String, org.gcube.datacatalogue.utillibrary.shared.RolesCkanGroupOrOrg)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean checkRoleIntoGroup(String username, String groupName, RolesCkanGroupOrOrg correspondentRoleToCheck) {
|
public boolean checkRoleIntoGroup(String username, String groupName, RolesCkanGroupOrOrg correspondentRoleToCheck) {
|
||||||
LOG.debug("Request for checking if " + username + " into group " + groupName + " has role " + correspondentRoleToCheck);
|
LOG.debug("Request for checking if " + username + " into group " + groupName + " has role " + correspondentRoleToCheck);
|
||||||
|
@ -958,6 +978,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#createCkanDatasetMultipleCustomFields(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, long, java.lang.String, java.lang.String, java.util.List, java.util.Map, java.util.List, boolean, boolean, boolean)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String createCkanDatasetMultipleCustomFields(String username, String title, String name, String organizationName,
|
public String createCkanDatasetMultipleCustomFields(String username, String title, String name, String organizationName,
|
||||||
String author, String authorMail, String maintainer, String maintainerMail, long version,
|
String author, String authorMail, String maintainer, String maintainerMail, long version,
|
||||||
|
@ -1039,6 +1062,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#patchFieldsForDataset(java.lang.String, java.util.Map)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean patchFieldsForDataset(String datasetIdOrName, Map<String, String> mapFields) throws Exception {
|
public boolean patchFieldsForDataset(String datasetIdOrName, Map<String, String> mapFields) throws Exception {
|
||||||
LOG.info("Called patch the fields " + mapFields + " for dataset id/name: " + datasetIdOrName);
|
LOG.info("Called patch the fields " + mapFields + " for dataset id/name: " + datasetIdOrName);
|
||||||
|
@ -1069,6 +1095,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#setSearchableFieldForDataset(java.lang.String, boolean)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean setSearchableFieldForDataset(String datasetId, boolean searchable) throws Exception {
|
public boolean setSearchableFieldForDataset(String datasetId, boolean searchable) throws Exception {
|
||||||
LOG.info("Set searchalbe field as " + searchable + " for dataset id: " + datasetId);
|
LOG.info("Set searchalbe field as " + searchable + " for dataset id: " + datasetId);
|
||||||
|
@ -1093,6 +1122,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#addResourceToDataset(org.gcube.datacatalogue.utillibrary.shared.ResourceBean)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String addResourceToDataset(ResourceBean resourceBean) throws Exception {
|
public String addResourceToDataset(ResourceBean resourceBean) throws Exception {
|
||||||
LOG.info("Request to add a resource described by this bean " + resourceBean);
|
LOG.info("Request to add a resource described by this bean " + resourceBean);
|
||||||
|
@ -1134,6 +1166,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#deleteResourceFromDataset(java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean deleteResourceFromDataset(String resourceId) throws Exception {
|
public boolean deleteResourceFromDataset(String resourceId) throws Exception {
|
||||||
LOG.info("Request to delete a resource with id " + resourceId);
|
LOG.info("Request to delete a resource with id " + resourceId);
|
||||||
|
@ -1155,6 +1190,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#createGroup(java.lang.String, java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public CkanGroup createGroup(String name, String title, String description) throws Exception {
|
public CkanGroup createGroup(String name, String title, String description) throws Exception {
|
||||||
|
|
||||||
|
@ -1191,6 +1229,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getRolesAndUsersGroup(java.lang.String)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Map<RolesCkanGroupOrOrg, List<String>> getRolesAndUsersGroup(String groupName) {
|
public Map<RolesCkanGroupOrOrg, List<String>> getRolesAndUsersGroup(String groupName) {
|
||||||
|
|
||||||
|
@ -1223,6 +1264,9 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#assignDatasetToGroup(java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
//TODO HAS TO BE REVISITED by gCAT
|
//TODO HAS TO BE REVISITED by gCAT
|
||||||
@Override
|
@Override
|
||||||
public boolean assignDatasetToGroup(String groupNameOrId, String datasetNameOrId) {
|
public boolean assignDatasetToGroup(String groupNameOrId, String datasetNameOrId) {
|
||||||
|
@ -1230,13 +1274,134 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#patchProductCustomFields(java.lang.String, java.lang.String, java.util.Map, boolean)
|
||||||
|
*/
|
||||||
|
//TODO HAS TO BE REVISITED by gCAT
|
||||||
|
@Override
|
||||||
|
public boolean patchProductCustomFields(String productId, String username,
|
||||||
|
Map<String, List<String>> customFieldsToChange, boolean removeOld) {
|
||||||
|
|
||||||
|
// checks
|
||||||
|
checkNotNull(productId);
|
||||||
|
checkNotNull(username);
|
||||||
|
|
||||||
|
if(customFieldsToChange == null || customFieldsToChange.isEmpty()) // TODO.. remove all custom fields maybe?!
|
||||||
|
return true;
|
||||||
|
|
||||||
|
String apiKey = getApiKeyFromUsername(username);
|
||||||
|
|
||||||
|
LOG.info("Going to change product with id " + productId +"."
|
||||||
|
+ " Request comes from user with key " + apiKey.substring(0, 5) + "****************");
|
||||||
|
|
||||||
|
LOG.info("The new values are " + customFieldsToChange);
|
||||||
|
|
||||||
|
// Get already available custom fields
|
||||||
|
Map<String, List<String>> fromCKANCustomFields = new HashMap<String, List<String>>();
|
||||||
|
|
||||||
|
|
||||||
|
ExtendCkanClient client = new ExtendCkanClient(CKAN_CATALOGUE_URL, apiKey);
|
||||||
|
List<CkanPair> extras = client.getDataset(productId).getExtras();
|
||||||
|
|
||||||
|
if(extras == null)
|
||||||
|
extras = new ArrayList<CkanPair>();
|
||||||
|
|
||||||
|
// fill the above map with these values
|
||||||
|
for (CkanPair ckanPair : extras) {
|
||||||
|
List<String> forThisValue = null;
|
||||||
|
String key = ckanPair.getKey();
|
||||||
|
if(fromCKANCustomFields.containsKey(key))
|
||||||
|
forThisValue = fromCKANCustomFields.get(key);
|
||||||
|
else
|
||||||
|
forThisValue = new ArrayList<String>();
|
||||||
|
forThisValue.add(ckanPair.getValue());
|
||||||
|
fromCKANCustomFields.put(key, forThisValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
LOG.info("The generated map from jackan looks like " + fromCKANCustomFields + ". Going to merge them");
|
||||||
|
|
||||||
|
// merge them with the new values
|
||||||
|
Iterator<Entry<String, List<String>>> iteratorUserMap = customFieldsToChange.entrySet().iterator();
|
||||||
|
while (iteratorUserMap.hasNext()) {
|
||||||
|
Map.Entry<java.lang.String, java.util.List<java.lang.String>> entry = iteratorUserMap
|
||||||
|
.next();
|
||||||
|
|
||||||
|
String key = entry.getKey();
|
||||||
|
List<String> newValues = entry.getValue();
|
||||||
|
|
||||||
|
// get the unique set of values
|
||||||
|
Set<String> uniqueValues = new HashSet<String>();
|
||||||
|
|
||||||
|
if(fromCKANCustomFields.containsKey(key))
|
||||||
|
if(!removeOld)
|
||||||
|
uniqueValues.addAll(fromCKANCustomFields.get(key));
|
||||||
|
|
||||||
|
uniqueValues.addAll(newValues);
|
||||||
|
fromCKANCustomFields.put(key, new ArrayList<String>(uniqueValues));
|
||||||
|
}
|
||||||
|
|
||||||
|
LOG.info("After merging it is " + fromCKANCustomFields);
|
||||||
|
|
||||||
|
try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
|
||||||
|
String apiRequestUrl = CKAN_CATALOGUE_URL + "/api/3/action/package_patch";
|
||||||
|
HttpPost httpPostRequest = new HttpPost(apiRequestUrl);
|
||||||
|
httpPostRequest.setHeader("Authorization", apiKey);
|
||||||
|
|
||||||
|
// Request parameters to be replaced
|
||||||
|
JSONObject jsonRequest = new JSONObject();
|
||||||
|
|
||||||
|
// build the json array for the "extras" field.. each object looks like {"key": ..., "value": ...}
|
||||||
|
JSONArray extrasObject = new JSONArray();
|
||||||
|
|
||||||
|
Iterator<Entry<String, List<String>>> iteratorNewFields = fromCKANCustomFields.entrySet().iterator();
|
||||||
|
while (iteratorNewFields.hasNext()) {
|
||||||
|
Map.Entry<java.lang.String, java.util.List<java.lang.String>> entry = iteratorNewFields
|
||||||
|
.next();
|
||||||
|
|
||||||
|
String key = entry.getKey();
|
||||||
|
List<String> values = entry.getValue();
|
||||||
|
|
||||||
|
for (String value : values) {
|
||||||
|
JSONObject obj = new JSONObject();
|
||||||
|
obj.put("value", value);
|
||||||
|
obj.put("key", key);
|
||||||
|
extrasObject.add(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// perform the request
|
||||||
|
jsonRequest.put("id", productId);
|
||||||
|
jsonRequest.put("extras", extrasObject);
|
||||||
|
|
||||||
|
LOG.debug("Request param is going to be " + jsonRequest);
|
||||||
|
|
||||||
|
StringEntity params = new StringEntity(jsonRequest.toJSONString(), ContentType.APPLICATION_JSON);
|
||||||
|
httpPostRequest.setEntity(params);
|
||||||
|
|
||||||
|
HttpResponse response = httpClient.execute(httpPostRequest);
|
||||||
|
|
||||||
|
if (response.getStatusLine().getStatusCode() < 200 || response.getStatusLine().getStatusCode() >= 300) {
|
||||||
|
throw new RuntimeException("failed to patch the product. response status line from "
|
||||||
|
+ apiRequestUrl + " was: " + response.getStatusLine());
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}catch(Exception e){
|
||||||
|
LOG.error("Failed to patch the product ", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The real body of the assignDatasetToGroup
|
* The real body of the assignDatasetToGroup.
|
||||||
* @param groupNameOrId
|
*
|
||||||
* @param datasetNameOrId
|
* @param groupNameOrId the group name or id
|
||||||
* @param apiKey
|
* @param datasetNameOrId the dataset name or id
|
||||||
* @param addOnParents
|
* @param addOnParents the add on parents
|
||||||
* @return
|
* @return true, if successful
|
||||||
*/
|
*/
|
||||||
private boolean assignDatasetToGroupBody(String groupNameOrId, String datasetNameOrId, boolean addOnParents) {
|
private boolean assignDatasetToGroupBody(String groupNameOrId, String datasetNameOrId, boolean addOnParents) {
|
||||||
|
|
||||||
|
@ -1336,10 +1501,10 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find the hierarchy of trees
|
* Find the hierarchy of trees.
|
||||||
* @param uniqueGroups
|
*
|
||||||
* @param catalogue
|
* @param groupsTitles the groups titles
|
||||||
* @param user's api key
|
* @param apiKey the api key
|
||||||
*/
|
*/
|
||||||
private void findHierarchyGroups(
|
private void findHierarchyGroups(
|
||||||
List<String> groupsTitles,
|
List<String> groupsTitles,
|
||||||
|
@ -1365,13 +1530,19 @@ public class DataCatalogueImpl implements DataCatalogue {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/**
|
||||||
|
* *****************************************************************************
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* MANAGEMENT OPERATIONS
|
* MANAGEMENT OPERATIONS
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*******************************************************************************/
|
* *****************************************************************************.
|
||||||
|
*
|
||||||
|
* @param username the username
|
||||||
|
* @param sourceOrganization the source organization
|
||||||
|
* @param currentRole the current role
|
||||||
|
*/
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void assignRolesOtherOrganization(String username,
|
public void assignRolesOtherOrganization(String username,
|
||||||
|
|
|
@ -301,7 +301,7 @@ public class TestDataCatalogueLib {
|
||||||
SecurityTokenProvider.instance.set(authorizationToken);
|
SecurityTokenProvider.instance.set(authorizationToken);
|
||||||
|
|
||||||
DataCatalogueImpl instance = factory.getUtilsPerScope(scope);
|
DataCatalogueImpl instance = factory.getUtilsPerScope(scope);
|
||||||
CkanDataset dataset = instance.getDataset(productName, null);
|
CkanDataset dataset = instance.getDataset(productName, testUser);
|
||||||
|
|
||||||
for (int i = 1; i < 3; i++) {
|
for (int i = 1; i < 3; i++) {
|
||||||
ResourceBean resourceBean = new ResourceBean("https://data-dev.d4science.net/ie8Y", "resouce " + i,
|
ResourceBean resourceBean = new ResourceBean("https://data-dev.d4science.net/ie8Y", "resouce " + i,
|
||||||
|
|
Loading…
Reference in New Issue