diff --git a/core/pom.xml b/core/pom.xml
index 8bdbba8..07a8016 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -45,7 +45,7 @@
gr.cite.opendmp
repositorydepositbase
- 1.0.0-SNAPSHOT
+ 2.0.0
diff --git a/core/src/main/java/eu/eudat/depositinterface/zenodorepository/configuration/zenodo/ZenodoProperties.java b/core/src/main/java/eu/eudat/depositinterface/zenodorepository/configuration/zenodo/ZenodoProperties.java
index 883135d..d9bfc3c 100644
--- a/core/src/main/java/eu/eudat/depositinterface/zenodorepository/configuration/zenodo/ZenodoProperties.java
+++ b/core/src/main/java/eu/eudat/depositinterface/zenodorepository/configuration/zenodo/ZenodoProperties.java
@@ -1,219 +1,57 @@
package eu.eudat.depositinterface.zenodorepository.configuration.zenodo;
-import eu.eudat.depositinterface.enums.DepositType;
-import eu.eudat.depositinterface.repository.RepositoryDepositConfiguration;
+import eu.eudat.depositinterface.repository.DepositConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.boot.context.properties.ConstructorBinding;
-
-import java.util.List;
-import java.util.Map;
@ConfigurationProperties(prefix = "zenodo")
public class ZenodoProperties {
+ private String logo;
- private String tempStorage;
+ private String community;
- private List configuration;
+ private String domain;
+ private String affiliation;
- public String getTempStorage() {
- return tempStorage;
+ private DepositConfiguration depositConfiguration;
+
+ public void setLogo(String logo) {
+ this.logo = logo;
}
- public List getConfiguration() {
- return configuration;
+ public String getLogo() {
+ return logo;
}
- public void setTempStorage(String tempStorage) {
- this.tempStorage = tempStorage;
+ public String getCommunity() {
+ return community;
}
- public void setConfiguration(List configuration) {
- this.configuration = configuration;
+ public void setCommunity(String community) {
+ this.community = community;
}
- public static class ZenodoConfig extends RepositoryDepositConfiguration {
- private DepositType depositType;
- private String repositoryId;
- private String accessToken;
- private String repositoryUrl;
- private String repositoryAuthorizationUrl;
- private String repositoryRecordUrl;
- private String repositoryAccessTokenUrl;
- private String repositoryClientId;
- private String repositoryClientSecret;
- private String redirectUri;
- private boolean hasLogo;
- private String logo;
- private String doiFunder;
- private String community;
- private String affiliation;
- private String domain;
+ public String getDomain() {
+ return domain;
+ }
- @Override
- public DepositType getDepositType() {
- return depositType;
- }
+ public void setDomain(String domain) {
+ this.domain = domain;
+ }
- @Override
- public void setDepositType(DepositType depositType) {
- this.depositType = depositType;
- }
+ public String getAffiliation() {
+ return affiliation;
+ }
- @Override
- public String getRepositoryId() {
- return repositoryId;
- }
+ public void setAffiliation(String affiliation) {
+ this.affiliation = affiliation;
+ }
- @Override
- public void setRepositoryId(String repositoryId) {
- this.repositoryId = repositoryId;
- }
+ public DepositConfiguration getDepositConfiguration() {
+ return depositConfiguration;
+ }
- @Override
- public String getAccessToken() {
- return accessToken;
- }
-
- @Override
- public void setAccessToken(String accessToken) {
- this.accessToken = accessToken;
- }
-
- @Override
- public String getRepositoryUrl() {
- return repositoryUrl;
- }
-
- @Override
- public void setRepositoryUrl(String repositoryUrl) {
- this.repositoryUrl = repositoryUrl;
- }
-
- @Override
- public String getRepositoryAuthorizationUrl() {
- return repositoryAuthorizationUrl;
- }
-
- @Override
- public void setRepositoryAuthorizationUrl(String repositoryAuthorizationUrl) {
- this.repositoryAuthorizationUrl = repositoryAuthorizationUrl;
- }
-
- @Override
- public String getRepositoryRecordUrl() {
- return repositoryRecordUrl;
- }
-
- @Override
- public void setRepositoryRecordUrl(String repositoryRecordUrl) {
- this.repositoryRecordUrl = repositoryRecordUrl;
- }
-
- @Override
- public String getRepositoryAccessTokenUrl() {
- return repositoryAccessTokenUrl;
- }
-
- @Override
- public void setRepositoryAccessTokenUrl(String repositoryAccessTokenUrl) {
- this.repositoryAccessTokenUrl = repositoryAccessTokenUrl;
- }
-
- @Override
- public String getRepositoryClientId() {
- return repositoryClientId;
- }
-
- @Override
- public void setRepositoryClientId(String repositoryClientId) {
- this.repositoryClientId = repositoryClientId;
- }
-
- @Override
- public String getRepositoryClientSecret() {
- return repositoryClientSecret;
- }
-
- @Override
- public void setRepositoryClientSecret(String repositoryClientSecret) {
- this.repositoryClientSecret = repositoryClientSecret;
- }
-
- @Override
- public String getRedirectUri() {
- return redirectUri;
- }
-
- @Override
- public void setRedirectUri(String redirectUri) {
- this.redirectUri = redirectUri;
- }
-
- @Override
- public boolean isHasLogo() {
- return hasLogo;
- }
-
- @Override
- public void setHasLogo(boolean hasLogo) {
- this.hasLogo = hasLogo;
- }
-
- public String getLogo() {
- return logo;
- }
-
- public void setLogo(String logo) {
- this.logo = logo;
- }
-
- public String getDoiFunder() {
- return doiFunder;
- }
-
- public void setDoiFunder(String doiFunder) {
- this.doiFunder = doiFunder;
- }
-
- public String getCommunity() {
- return community;
- }
-
- public void setCommunity(String community) {
- this.community = community;
- }
-
- public String getAffiliation() {
- return affiliation;
- }
-
- public void setAffiliation(String affiliation) {
- this.affiliation = affiliation;
- }
-
- public String getDomain() {
- return domain;
- }
-
- public void setDomain(String domain) {
- this.domain = domain;
- }
-
- public RepositoryDepositConfiguration toRepoConfig() {
- RepositoryDepositConfiguration config = new RepositoryDepositConfiguration();
- config.setDepositType(this.depositType);
- config.setRepositoryId(this.repositoryId);
- config.setAccessToken(this.accessToken);
- config.setRepositoryUrl(this.repositoryUrl);
- config.setRepositoryAuthorizationUrl(this.repositoryAuthorizationUrl);
- config.setRepositoryRecordUrl(this.repositoryRecordUrl);
- config.setRepositoryAccessTokenUrl(this.repositoryAccessTokenUrl);
- config.setRepositoryClientId(this.repositoryClientId);
- config.setRepositoryClientSecret(this.repositoryClientSecret);
- config.setRedirectUri(this.redirectUri);
- config.setHasLogo(this.hasLogo);
- return config;
- }
+ public void setDepositConfiguration(DepositConfiguration depositConfiguration) {
+ this.depositConfiguration = depositConfiguration;
}
}
diff --git a/core/src/main/java/eu/eudat/depositinterface/zenodorepository/model/builder/ZenodoBuilder.java b/core/src/main/java/eu/eudat/depositinterface/zenodorepository/model/builder/ZenodoBuilder.java
index 364ca43..4cc51c5 100644
--- a/core/src/main/java/eu/eudat/depositinterface/zenodorepository/model/builder/ZenodoBuilder.java
+++ b/core/src/main/java/eu/eudat/depositinterface/zenodorepository/model/builder/ZenodoBuilder.java
@@ -49,7 +49,7 @@ public class ZenodoBuilder {
this.funderProperties = funderProperties;
}
- public ZenodoDeposit build(DmpDepositModel dmp, ZenodoProperties.ZenodoConfig zenodoConfig) throws JsonProcessingException {
+ public ZenodoDeposit build(DmpDepositModel dmp, ZenodoProperties zenodoConfig) throws JsonProcessingException {
ZenodoDeposit deposit = new ZenodoDeposit();
this.applyZenodoRelator(dmp, deposit);
deposit.getMetadata().setTitle(dmp.getLabel());
@@ -76,33 +76,26 @@ public class ZenodoBuilder {
return deposit;
}
- private List findSchematicValues(String relatedId, List fields){
+ private List findSchematicValues(String relatedId, List fields){
return fields.stream().filter(f -> f.getSchematics().contains(relatedId)).collect(Collectors.toList());
}
- private Set extractSchematicValues(List fields, List acceptedPidTypes) throws JsonProcessingException{
+ private Set extractSchematicValues(List fields, List acceptedPidTypes) throws JsonProcessingException{
ObjectMapper objectMapper = new ObjectMapper();
Set values = new HashSet<>();
- for(DatasetFieldsDepositModel field: fields){
- String value = (String) field.getValue();
- if(value != null && !value.isEmpty()) {
+ for(DescriptionFieldDepositModel field: fields){
+ //TODO: Check how to parse this values after update the logic of description persist from the main app
+ List value =field.getValues() == null ? new ArrayList<>() : field.getValues().stream().map(x-> (String)x).filter(x-> x == null || x.isEmpty()).toList();
+ if(!value.isEmpty()) {
switch (field.getFieldType()) {
case FREE_TEXT:
case TEXT_AREA:
case RICH_TEXT_AREA:
case RADIO_BOX:
case DATE_PICKER:
- values.add(value);
- break;
case AUTO_COMPLETE:
case WORD_LIST:
- if (field.isMultiple()) {
- List selected = objectMapper.readValue(value, new TypeReference>() {});
- values.addAll(selected);
- }
- else {
- values.add(value);
- }
+ values.addAll(value);
break;
case SERVICES:
case EXTERNAL_DATASETS:
@@ -111,19 +104,9 @@ public class ZenodoBuilder {
case JOURNAL_REPOSITORIES:
case TAXONOMIES:
case PUBLICATIONS:
- if (field.isMultiple()) {
- List selected = objectMapper.readValue(value, new TypeReference>() {});
- for (String s : selected) {
- Map valueMap = objectMapper.readValue(s, new TypeReference