#8740 - multiple configuration for a deposit repository
This commit is contained in:
parent
3630727fed
commit
741179a53f
|
@ -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>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"
|
||||||
|
}
|
||||||
|
]
|
|
@ -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"
|
||||||
|
}
|
||||||
|
]
|
Loading…
Reference in New Issue