diff --git a/dmp-backend/web/pom.xml b/dmp-backend/web/pom.xml index 3dbee2826..2e1e495d1 100644 --- a/dmp-backend/web/pom.xml +++ b/dmp-backend/web/pom.xml @@ -34,7 +34,7 @@ gr.cite.opendmp repositorydepositbase - 1.0.3 + 1.0.4 diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java index f767bc2dd..df74d3258 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java @@ -2134,15 +2134,17 @@ public class DataManagementPlanManager { DMPDepositModel dmpDepositModel = DMPToDepositMapper.fromDMP(dmp, pdfEnvelope, rdaJsonFile, supportingFilesZip, previousDOI); - Optional repo = this.repositoriesDeposit.stream().filter(x -> x.getConfiguration().getRepositoryId().equals(depositRequest.getRepositoryId())).findFirst(); - String finalDoi = repo.map(r -> { - try { - return r.deposit(dmpDepositModel, depositRequest.getAccessToken()); - } catch (Exception e) { - logger.error(e.getMessage(), e); - return null; + String finalDoi = null; + for(RepositoryDeposit repo: this.repositoriesDeposit){ + if(repo.getConfiguration().stream().anyMatch(x-> x.getRepositoryId().equals(depositRequest.getRepositoryId()))){ + try { + finalDoi = repo.deposit(depositRequest.getRepositoryId(), dmpDepositModel, depositRequest.getAccessToken()); + } catch (Exception e) { + logger.error(e.getMessage(), e); + return null; + } } - }).orElse(null); + } Doi doiModel = null; if (finalDoi != null) { diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DepositManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DepositManager.java index df71d4f65..fa8e20d42 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DepositManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DepositManager.java @@ -31,18 +31,24 @@ public class DepositManager { public List getAvailableRepos() { List reposConfigModel = new ArrayList<>(); for (RepositoryDeposit r: this.repositories) { - RepositoryConfig repoModel = new RepositoryConfig(); - RepositoryDepositConfiguration repoConf = r.getConfiguration(); + List repoConf = r.getConfiguration(); if(repoConf != null) { - reposConfigModel.add(repoModel.toModel(repoConf)); + for(RepositoryDepositConfiguration cf: repoConf){ + RepositoryConfig repoModel = new RepositoryConfig(); + reposConfigModel.add(repoModel.toModel(cf)); + } } } return reposConfigModel; } public String authenticate(String id, String code) { - Optional repo = repositories.stream().filter(x -> x.getConfiguration().getRepositoryId().equals(id)).findFirst(); - return repo.map(repositoryDeposit -> repositoryDeposit.authenticate(code)).orElse(null); + for(RepositoryDeposit r: this.repositories){ + if(r.getConfiguration().stream().anyMatch(x -> x.getRepositoryId().equals(id))){ + return r.authenticate(id, code); + } + } + return null; } public Doi deposit(DepositRequest depositRequest, Principal principal) throws Exception { @@ -50,9 +56,12 @@ public class DepositManager { } public String getRepositoryLogo(String repositoryId){ - Optional repo = repositories.stream().filter(x -> x.getConfiguration().getRepositoryId().equals(repositoryId)).findFirst(); - return repo.map(repositoryDeposit -> - (repositoryDeposit.getConfiguration().isHasLogo()) ? repositoryDeposit.getLogo() : null - ).orElse(null); + for(RepositoryDeposit r: this.repositories){ + Optional cf = r.getConfiguration().stream().filter(x -> x.getRepositoryId().equals(repositoryId)).findFirst(); + if(cf.isPresent()){ + return cf.get().isHasLogo() ? r.getLogo(repositoryId) : null; + } + } + return null; } } diff --git a/repo-jars/dataverse.json b/repo-jars/dataverse.json index 473d94515..680018a1c 100644 --- a/repo-jars/dataverse.json +++ b/repo-jars/dataverse.json @@ -1,11 +1,13 @@ -{ - "depositType": 0, - "repositoryId": "Dataverse", - "apiToken": "", - "repositoryUrl": "https://demo.dataverse.org/api/", - "repositoryRecordUrl": "https://demo.dataverse.org/dataset.xhtml?persistentId=doi:", - "server": "https://demo.dataverse.org", - "parentDataverseAlias": "test1000" - "parentDataverseAlias": "test1000", - "hasLogo": false -} \ No newline at end of file +[ + { + "depositType": 0, + "repositoryId": "Dataverse", + "apiToken": "", + "repositoryUrl": "https://demo.dataverse.org/api/", + "repositoryRecordUrl": "https://demo.dataverse.org/dataset.xhtml?persistentId=doi:", + "server": "https://demo.dataverse.org", + "parentDataverseAlias": "test1000", + "hasLogo": true, + "logo": "dataverse.png" + } +] \ No newline at end of file diff --git a/repo-jars/zenodo.json b/repo-jars/zenodo.json index cd77e1ed4..c81eaabc7 100644 --- a/repo-jars/zenodo.json +++ b/repo-jars/zenodo.json @@ -1,14 +1,16 @@ -{ - "depositType": 2, - "repositoryId": "Zenodo", - "accessToken": "", - "repositoryUrl": "https://sandbox.zenodo.org/api/", - "repositoryAuthorizationUrl": "https://sandbox.zenodo.org/oauth/authorize", - "repositoryRecordUrl": "https://sandbox.zenodo.org/record/", - "repositoryAccessTokenUrl": "https://sandbox.zenodo.org/oauth/token", - "repositoryClientId": "", - "repositoryClientSecret": "", - "redirectUri": "http://localhost:4200/login/external/zenodo" - "redirectUri": "http://localhost:4200/login/external/zenodo", - "hasLogo": true -} \ No newline at end of file +[ + { + "depositType": 2, + "repositoryId": "Zenodo", + "accessToken": "", + "repositoryUrl": "https://sandbox.zenodo.org/api/", + "repositoryAuthorizationUrl": "https://sandbox.zenodo.org/oauth/authorize", + "repositoryRecordUrl": "https://sandbox.zenodo.org/record/", + "repositoryAccessTokenUrl": "https://sandbox.zenodo.org/oauth/token", + "repositoryClientId": "", + "repositoryClientSecret": "", + "redirectUri": "http://localhost:4200/login/external/zenodo", + "hasLogo": true, + "logo": "zenodo.jpg" + } +] \ No newline at end of file