Adds "create if don't exist" for Funder entity and refactors the existing ones.
This commit is contained in:
parent
44973ef3a9
commit
535ca2ed5a
|
@ -430,8 +430,9 @@ public class DataManagementPlanManager {
|
||||||
|
|
||||||
createOrganisationsIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getOrganisationDao());
|
createOrganisationsIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getOrganisationDao());
|
||||||
createResearchersIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getResearcherDao());
|
createResearchersIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getResearcherDao());
|
||||||
createGrantIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getGrantDao(), user);
|
createGrantIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getGrantDao());
|
||||||
if (newDmp.getProject().getLabel() == null) {
|
createFunderIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getFunderDao());
|
||||||
|
if (newDmp.getProject().getLabel() == null || newDmp.getProject().getLabel().trim().isEmpty()) {
|
||||||
newDmp.setProject(newDmp.getProject().projectFromGrant(newDmp.getGrant()));
|
newDmp.setProject(newDmp.getProject().projectFromGrant(newDmp.getGrant()));
|
||||||
}
|
}
|
||||||
createProjectIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getProjectDao());
|
createProjectIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getProjectDao());
|
||||||
|
@ -525,7 +526,7 @@ public class DataManagementPlanManager {
|
||||||
createOrganisationsIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getOrganisationDao());
|
createOrganisationsIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getOrganisationDao());
|
||||||
createResearchersIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getResearcherDao());
|
createResearchersIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getResearcherDao());
|
||||||
UserInfo user = apiContext.getOperationsContext().getBuilderFactory().getBuilder(UserInfoBuilder.class).id(principal.getId()).build();
|
UserInfo user = apiContext.getOperationsContext().getBuilderFactory().getBuilder(UserInfoBuilder.class).id(principal.getId()).build();
|
||||||
createGrantIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getGrantDao(), user);
|
createGrantIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getGrantDao());
|
||||||
createProjectIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getProjectDao());
|
createProjectIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getProjectDao());
|
||||||
|
|
||||||
newDmp.setGroupId(oldDmp.getGroupId());
|
newDmp.setGroupId(oldDmp.getGroupId());
|
||||||
|
@ -551,7 +552,7 @@ public class DataManagementPlanManager {
|
||||||
createOrganisationsIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getOrganisationDao());
|
createOrganisationsIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getOrganisationDao());
|
||||||
createResearchersIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getResearcherDao());
|
createResearchersIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getResearcherDao());
|
||||||
UserInfo user = apiContext.getOperationsContext().getBuilderFactory().getBuilder(UserInfoBuilder.class).id(principal.getId()).build();
|
UserInfo user = apiContext.getOperationsContext().getBuilderFactory().getBuilder(UserInfoBuilder.class).id(principal.getId()).build();
|
||||||
createGrantIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getGrantDao(), user);
|
createGrantIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getGrantDao());
|
||||||
createProjectIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getProjectDao());
|
createProjectIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getProjectDao());
|
||||||
|
|
||||||
newDmp.setGroupId(UUID.randomUUID());
|
newDmp.setGroupId(UUID.randomUUID());
|
||||||
|
@ -586,7 +587,7 @@ public class DataManagementPlanManager {
|
||||||
criteria.setLike(researcher.getReference());
|
criteria.setLike(researcher.getReference());
|
||||||
List<eu.eudat.data.entities.Researcher> entries = researcherRepository.getWithCriteria(criteria).toList();
|
List<eu.eudat.data.entities.Researcher> entries = researcherRepository.getWithCriteria(criteria).toList();
|
||||||
if (entries != null && !entries.isEmpty()) researcher.setId(entries.get(0).getId());
|
if (entries != null && !entries.isEmpty()) researcher.setId(entries.get(0).getId());
|
||||||
else researcher = researcherRepository.createOrUpdate(researcher);
|
else researcherRepository.createOrUpdate(researcher);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -598,12 +599,12 @@ public class DataManagementPlanManager {
|
||||||
criteria.setLike(organisation.getReference());
|
criteria.setLike(organisation.getReference());
|
||||||
List<eu.eudat.data.entities.Organisation> entries = organisationRepository.getWithCriteria(criteria).toList();
|
List<eu.eudat.data.entities.Organisation> entries = organisationRepository.getWithCriteria(criteria).toList();
|
||||||
if (entries != null && !entries.isEmpty()) organisation.setId(entries.get(0).getId());
|
if (entries != null && !entries.isEmpty()) organisation.setId(entries.get(0).getId());
|
||||||
else organisation = organisationRepository.createOrUpdate(organisation);
|
else organisationRepository.createOrUpdate(organisation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createGrantIfItDoesntExist(DMP newDmp, GrantDao grantDao, UserInfo userInfo) {
|
private void createGrantIfItDoesntExist(DMP newDmp, GrantDao grantDao) {
|
||||||
if (newDmp.getGrant() != null) {
|
if (newDmp.getGrant() != null) {
|
||||||
Grant grant = newDmp.getGrant();
|
Grant grant = newDmp.getGrant();
|
||||||
GrantCriteria criteria = new GrantCriteria();
|
GrantCriteria criteria = new GrantCriteria();
|
||||||
|
@ -617,6 +618,20 @@ public class DataManagementPlanManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createFunderIfItDoesntExist(DMP newDmp, FunderDao funderDao) {
|
||||||
|
if (newDmp.getGrant().getFunder() != null) {
|
||||||
|
Funder funder = newDmp.getGrant().getFunder();
|
||||||
|
FunderCriteria criteria = new FunderCriteria();
|
||||||
|
criteria.setReference(funder.getReference());
|
||||||
|
eu.eudat.data.entities.Funder funderEntity = funderDao.getWithCritetia(criteria).getSingleOrDefault();
|
||||||
|
if (funderEntity != null) funder.setId(funderEntity.getId());
|
||||||
|
else {
|
||||||
|
funder.setType(Funder.FunderType.EXTERNAL.getValue());
|
||||||
|
funderDao.createOrUpdate(funder);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void createProjectIfItDoesntExist(DMP newDmp, ProjectDao projectDao) {
|
private void createProjectIfItDoesntExist(DMP newDmp, ProjectDao projectDao) {
|
||||||
if (newDmp.getProject() != null) {
|
if (newDmp.getProject() != null) {
|
||||||
Project project = newDmp.getProject();
|
Project project = newDmp.getProject();
|
||||||
|
|
Loading…
Reference in New Issue