#8740 - multiple configuration for a deposit repository

This commit is contained in:
Bernaldo Mihasi 2023-06-21 12:46:37 +03:00
parent 3630727fed
commit 741179a53f
5 changed files with 58 additions and 43 deletions

View File

@ -34,7 +34,7 @@
<dependency> <dependency>
<groupId>gr.cite.opendmp</groupId> <groupId>gr.cite.opendmp</groupId>
<artifactId>repositorydepositbase</artifactId> <artifactId>repositorydepositbase</artifactId>
<version>1.0.3</version> <version>1.0.4</version>
</dependency> </dependency>

View File

@ -2134,15 +2134,17 @@ public class DataManagementPlanManager {
DMPDepositModel dmpDepositModel = DMPToDepositMapper.fromDMP(dmp, pdfEnvelope, rdaJsonFile, supportingFilesZip, previousDOI); DMPDepositModel dmpDepositModel = DMPToDepositMapper.fromDMP(dmp, pdfEnvelope, rdaJsonFile, supportingFilesZip, previousDOI);
Optional<RepositoryDeposit> repo = this.repositoriesDeposit.stream().filter(x -> x.getConfiguration().getRepositoryId().equals(depositRequest.getRepositoryId())).findFirst(); String finalDoi = null;
String finalDoi = repo.map(r -> { for(RepositoryDeposit repo: this.repositoriesDeposit){
try { if(repo.getConfiguration().stream().anyMatch(x-> x.getRepositoryId().equals(depositRequest.getRepositoryId()))){
return r.deposit(dmpDepositModel, depositRequest.getAccessToken()); try {
} catch (Exception e) { finalDoi = repo.deposit(depositRequest.getRepositoryId(), dmpDepositModel, depositRequest.getAccessToken());
logger.error(e.getMessage(), e); } catch (Exception e) {
return null; logger.error(e.getMessage(), e);
return null;
}
} }
}).orElse(null); }
Doi doiModel = null; Doi doiModel = null;
if (finalDoi != null) { if (finalDoi != null) {

View File

@ -31,18 +31,24 @@ public class DepositManager {
public List<RepositoryConfig> getAvailableRepos() { public List<RepositoryConfig> getAvailableRepos() {
List<RepositoryConfig> reposConfigModel = new ArrayList<>(); List<RepositoryConfig> reposConfigModel = new ArrayList<>();
for (RepositoryDeposit r: this.repositories) { for (RepositoryDeposit r: this.repositories) {
RepositoryConfig repoModel = new RepositoryConfig(); List<RepositoryDepositConfiguration> repoConf = r.getConfiguration();
RepositoryDepositConfiguration repoConf = r.getConfiguration();
if(repoConf != null) { if(repoConf != null) {
reposConfigModel.add(repoModel.toModel(repoConf)); for(RepositoryDepositConfiguration cf: repoConf){
RepositoryConfig repoModel = new RepositoryConfig();
reposConfigModel.add(repoModel.toModel(cf));
}
} }
} }
return reposConfigModel; return reposConfigModel;
} }
public String authenticate(String id, String code) { public String authenticate(String id, String code) {
Optional<RepositoryDeposit> repo = repositories.stream().filter(x -> x.getConfiguration().getRepositoryId().equals(id)).findFirst(); for(RepositoryDeposit r: this.repositories){
return repo.map(repositoryDeposit -> repositoryDeposit.authenticate(code)).orElse(null); 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 { public Doi deposit(DepositRequest depositRequest, Principal principal) throws Exception {
@ -50,9 +56,12 @@ public class DepositManager {
} }
public String getRepositoryLogo(String repositoryId){ public String getRepositoryLogo(String repositoryId){
Optional<RepositoryDeposit> repo = repositories.stream().filter(x -> x.getConfiguration().getRepositoryId().equals(repositoryId)).findFirst(); for(RepositoryDeposit r: this.repositories){
return repo.map(repositoryDeposit -> Optional<RepositoryDepositConfiguration> cf = r.getConfiguration().stream().filter(x -> x.getRepositoryId().equals(repositoryId)).findFirst();
(repositoryDeposit.getConfiguration().isHasLogo()) ? repositoryDeposit.getLogo() : null if(cf.isPresent()){
).orElse(null); return cf.get().isHasLogo() ? r.getLogo(repositoryId) : null;
}
}
return null;
} }
} }

View File

@ -1,11 +1,13 @@
{ [
"depositType": 0, {
"repositoryId": "Dataverse", "depositType": 0,
"apiToken": "", "repositoryId": "Dataverse",
"repositoryUrl": "https://demo.dataverse.org/api/", "apiToken": "",
"repositoryRecordUrl": "https://demo.dataverse.org/dataset.xhtml?persistentId=doi:", "repositoryUrl": "https://demo.dataverse.org/api/",
"server": "https://demo.dataverse.org", "repositoryRecordUrl": "https://demo.dataverse.org/dataset.xhtml?persistentId=doi:",
"parentDataverseAlias": "test1000" "server": "https://demo.dataverse.org",
"parentDataverseAlias": "test1000", "parentDataverseAlias": "test1000",
"hasLogo": false "hasLogo": true,
} "logo": "dataverse.png"
}
]

View File

@ -1,14 +1,16 @@
{ [
"depositType": 2, {
"repositoryId": "Zenodo", "depositType": 2,
"accessToken": "", "repositoryId": "Zenodo",
"repositoryUrl": "https://sandbox.zenodo.org/api/", "accessToken": "",
"repositoryAuthorizationUrl": "https://sandbox.zenodo.org/oauth/authorize", "repositoryUrl": "https://sandbox.zenodo.org/api/",
"repositoryRecordUrl": "https://sandbox.zenodo.org/record/", "repositoryAuthorizationUrl": "https://sandbox.zenodo.org/oauth/authorize",
"repositoryAccessTokenUrl": "https://sandbox.zenodo.org/oauth/token", "repositoryRecordUrl": "https://sandbox.zenodo.org/record/",
"repositoryClientId": "", "repositoryAccessTokenUrl": "https://sandbox.zenodo.org/oauth/token",
"repositoryClientSecret": "", "repositoryClientId": "",
"redirectUri": "http://localhost:4200/login/external/zenodo" "repositoryClientSecret": "",
"redirectUri": "http://localhost:4200/login/external/zenodo", "redirectUri": "http://localhost:4200/login/external/zenodo",
"hasLogo": true "hasLogo": true,
} "logo": "zenodo.jpg"
}
]