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