From 153e44986d0f2bc6269ecc00cc7fc3c9a67315d3 Mon Sep 17 00:00:00 2001 From: Aldo Mihasi Date: Tue, 17 Jan 2023 14:58:39 +0200 Subject: [PATCH] add repository logo --- .../dataverserepository/config/ConfigLoader.java | 1 + .../config/ConfigLoaderImpl.java | 16 ++++++++++++++++ .../config/DataverseConfig.java | 10 ++++++++++ .../interfaces/DataverseDeposit.java | 10 ++++++++++ src/main/resources/application.properties | 3 ++- 5 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/eudat/depositinterface/dataverserepository/config/ConfigLoader.java b/src/main/java/eu/eudat/depositinterface/dataverserepository/config/ConfigLoader.java index 5c8b820..9d1f841 100644 --- a/src/main/java/eu/eudat/depositinterface/dataverserepository/config/ConfigLoader.java +++ b/src/main/java/eu/eudat/depositinterface/dataverserepository/config/ConfigLoader.java @@ -1,5 +1,6 @@ package eu.eudat.depositinterface.dataverserepository.config; public interface ConfigLoader { + byte[] getLogo(); DataverseConfig getDataverseConfig(); } diff --git a/src/main/java/eu/eudat/depositinterface/dataverserepository/config/ConfigLoaderImpl.java b/src/main/java/eu/eudat/depositinterface/dataverserepository/config/ConfigLoaderImpl.java index 109bd7d..9a16cc7 100644 --- a/src/main/java/eu/eudat/depositinterface/dataverserepository/config/ConfigLoaderImpl.java +++ b/src/main/java/eu/eudat/depositinterface/dataverserepository/config/ConfigLoaderImpl.java @@ -34,6 +34,22 @@ public class ConfigLoaderImpl implements ConfigLoader{ return dataverseConfig; } + @Override + public byte[] getLogo() { + String logo = environment.getProperty("configuration.logo"); + if(logo != null && !logo.isEmpty()){ + InputStream logoStream = getStreamFromPath(logo); + try { + return logoStream.readAllBytes(); + } + catch (IOException e){ + logger.error(e.getMessage(), e); + return null; + } + } + return null; + } + private InputStream getStreamFromPath(String filePath) { try { return new FileInputStream(filePath); diff --git a/src/main/java/eu/eudat/depositinterface/dataverserepository/config/DataverseConfig.java b/src/main/java/eu/eudat/depositinterface/dataverserepository/config/DataverseConfig.java index b664dd9..f1f95a7 100644 --- a/src/main/java/eu/eudat/depositinterface/dataverserepository/config/DataverseConfig.java +++ b/src/main/java/eu/eudat/depositinterface/dataverserepository/config/DataverseConfig.java @@ -45,6 +45,8 @@ public class DataverseConfig { private String server; @JsonProperty("parentDataverseAlias") private String parentDataverseAlias; + @JsonProperty("hasLogo") + private boolean hasLogo; public int getDepositType() { return depositType; @@ -95,12 +97,20 @@ public class DataverseConfig { this.parentDataverseAlias = parentDataverseAlias; } + public boolean isHasLogo() { + return hasLogo; + } + public void setHasLogo(boolean hasLogo) { + this.hasLogo = hasLogo; + } + public RepositoryDepositConfiguration toRepoConfig() { RepositoryDepositConfiguration config = new RepositoryDepositConfiguration(); config.setDepositType(this.depositType); config.setRepositoryId(this.repositoryId); config.setRepositoryUrl(this.repositoryUrl); config.setRepositoryRecordUrl(this.repositoryRecordUrl); + config.setHasLogo(this.hasLogo); return config; } } diff --git a/src/main/java/eu/eudat/depositinterface/dataverserepository/interfaces/DataverseDeposit.java b/src/main/java/eu/eudat/depositinterface/dataverserepository/interfaces/DataverseDeposit.java index 588a880..933992f 100644 --- a/src/main/java/eu/eudat/depositinterface/dataverserepository/interfaces/DataverseDeposit.java +++ b/src/main/java/eu/eudat/depositinterface/dataverserepository/interfaces/DataverseDeposit.java @@ -197,4 +197,14 @@ public class DataverseDeposit implements RepositoryDeposit { public String authenticate(String code) { return null; } + + @Override + public String getLogo() { + RepositoryDepositConfiguration conf = this.getConfiguration(); + if(conf.isHasLogo()){ + byte[] logo = this.configLoader.getLogo(); + return (logo != null && logo.length != 0) ? Base64.getEncoder().encodeToString(logo) : null; + } + return null; + } } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index b185aa0..83138ad 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,2 +1,3 @@ storage.temp=${STORAGE_TMP_DATAVERSE} -configuration.dataverse=${CONFIGURATION_DATAVERSE} \ No newline at end of file +configuration.dataverse=${CONFIGURATION_DATAVERSE} +configuration.logo= \ No newline at end of file