When new DMP Version is made create also Dataset description index for the new version
This commit is contained in:
parent
4ae13704c5
commit
286c5d8900
|
@ -17,6 +17,8 @@ import eu.eudat.data.query.items.item.dmp.DataManagementPlanCriteriaRequest;
|
||||||
import eu.eudat.data.query.items.table.datasetprofile.DatasetProfileTableRequestItem;
|
import eu.eudat.data.query.items.table.datasetprofile.DatasetProfileTableRequestItem;
|
||||||
import eu.eudat.data.query.items.table.dmp.DataManagementPlanTableRequest;
|
import eu.eudat.data.query.items.table.dmp.DataManagementPlanTableRequest;
|
||||||
import eu.eudat.data.query.items.table.dmp.DataManagmentPlanPublicTableRequest;
|
import eu.eudat.data.query.items.table.dmp.DataManagmentPlanPublicTableRequest;
|
||||||
|
import eu.eudat.elastic.entities.Collaborator;
|
||||||
|
import eu.eudat.elastic.entities.Organization;
|
||||||
import eu.eudat.exceptions.datamanagementplan.DMPNewVersionException;
|
import eu.eudat.exceptions.datamanagementplan.DMPNewVersionException;
|
||||||
import eu.eudat.exceptions.datamanagementplan.DMPWithDatasetsDeleteException;
|
import eu.eudat.exceptions.datamanagementplan.DMPWithDatasetsDeleteException;
|
||||||
import eu.eudat.exceptions.security.UnauthorisedException;
|
import eu.eudat.exceptions.security.UnauthorisedException;
|
||||||
|
@ -920,18 +922,40 @@ public class DataManagementPlanManager {
|
||||||
newDataset.setCreated(new Date());
|
newDataset.setCreated(new Date());
|
||||||
return newDataset;
|
return newDataset;
|
||||||
}).thenApplyAsync(item -> {
|
}).thenApplyAsync(item -> {
|
||||||
futures.add(datasetDao.createOrUpdateAsync(item));
|
futures.add(datasetDao.createOrUpdateAsync(item).whenComplete(((dataset1, throwable) -> {
|
||||||
return futures;
|
eu.eudat.elastic.entities.Dataset datasetElastic = new eu.eudat.elastic.entities.Dataset();
|
||||||
}).join();
|
datasetElastic.setId(dataset1.getId().toString());
|
||||||
DatasetCriteria criteria = new DatasetCriteria();
|
datasetElastic.setLabel(dataset1.getLabel());
|
||||||
criteria.setDmpIds(Collections.singletonList(newDmp.getId()));
|
datasetElastic.setTemplate(dataset1.getProfile().getId());
|
||||||
datasetDao.getWithCriteria(criteria).toList().stream().max(Comparator.comparing(Dataset::getCreated)).ifPresent(dataset1 -> {
|
datasetElastic.setStatus(dataset1.getStatus());
|
||||||
|
datasetElastic.setDmp(dataset1.getDmp().getId());
|
||||||
|
datasetElastic.setGroup(dataset1.getDmp().getGroupId());
|
||||||
|
datasetElastic.setGrant(dataset1.getDmp().getGrant().getId());
|
||||||
|
if (dataset1.getDmp().getUsers() != null) {
|
||||||
|
datasetElastic.setCollaborators(dataset1.getDmp().getUsers().stream().map(user -> {
|
||||||
|
Collaborator collaborator = new Collaborator();
|
||||||
|
collaborator.setId(user.getId().toString());
|
||||||
|
// collaborator.setName(user.getUser().getName());
|
||||||
|
return collaborator;
|
||||||
|
}).collect(Collectors.toList()));
|
||||||
|
}
|
||||||
|
datasetElastic.setLastVersion(true);
|
||||||
|
if (dataset1.getDmp().getOrganisations() != null) {
|
||||||
|
datasetElastic.setOrganizations(dataset1.getDmp().getOrganisations().stream().map(org -> {
|
||||||
|
Organization organization = new Organization();
|
||||||
|
organization.setId(org.getId().toString());
|
||||||
|
organization.setName(org.getLabel());
|
||||||
|
return organization;
|
||||||
|
}).collect(Collectors.toList()));
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
datasetManager.updateTags(apiContext.getOperationsContext().getDatasetRepository(), new DatasetWizardModel().fromDataModel(dataset1));
|
apiContext.getOperationsContext().getDatasetRepository().createOrUpdate(datasetElastic);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
logger.error(e.getMessage(), e);
|
logger.error(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
});
|
})));
|
||||||
|
return futures;
|
||||||
|
}).join();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue