From 97b7b50bf163dc5498c4e082ac65d9069d9afb4c Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Mon, 30 Jan 2023 17:42:31 +0100 Subject: [PATCH] Improving solution --- .../export/zenodo/ZenodoSoftwareVersionExporter.java | 5 ++--- .../common/software/model/SoftwareVersionConfig.java | 9 +++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/gcube/common/software/export/zenodo/ZenodoSoftwareVersionExporter.java b/src/main/java/org/gcube/common/software/export/zenodo/ZenodoSoftwareVersionExporter.java index cc1f9fd..6540561 100644 --- a/src/main/java/org/gcube/common/software/export/zenodo/ZenodoSoftwareVersionExporter.java +++ b/src/main/java/org/gcube/common/software/export/zenodo/ZenodoSoftwareVersionExporter.java @@ -404,9 +404,8 @@ public class ZenodoSoftwareVersionExporter extends SoftwareVersionExporter { gxHTTPStringRequest.header("Content-Type", "application/json"); gxHTTPStringRequest.header("Accept", "application/json"); - String conceptDOI = softwareVersionConfig.getConceptDOIURL(); - - String conceptID = getZenodoIDFromDOIURL(softwareVersionConfig.getConceptDOIURL()); + String conceptDOIURL = softwareVersionConfig.getConceptDOIURL(); + String conceptID = getZenodoIDFromDOIURL(conceptDOIURL); gxHTTPStringRequest.path(RECORD_PATH.replace(":id", conceptID)); HttpURLConnection httpURLConnection = gxHTTPStringRequest.get(); JsonNode jsonNode = getResponse(httpURLConnection); diff --git a/src/main/java/org/gcube/common/software/model/SoftwareVersionConfig.java b/src/main/java/org/gcube/common/software/model/SoftwareVersionConfig.java index 285324c..0623a78 100644 --- a/src/main/java/org/gcube/common/software/model/SoftwareVersionConfig.java +++ b/src/main/java/org/gcube/common/software/model/SoftwareVersionConfig.java @@ -22,6 +22,8 @@ import org.gcube.common.software.utils.Utils; */ public class SoftwareVersionConfig { + public static final String PREVIOUS_CONCEPT_DOI_VALUE = "PREVIOUS"; + public static final String NAME_PROPERTY_NAME = "name"; public static final String VERSION_PROPERTY_NAME = "version"; public static final String TITLE_PROPERTY_NAME = "title"; @@ -176,6 +178,13 @@ public class SoftwareVersionConfig { } public String getConceptDOIURL() { + if(conceptDOIURL!=null && conceptDOIURL.compareTo(PREVIOUS_CONCEPT_DOI_VALUE)==0) { + if(previous!=null) { + conceptDOIURL = previous.getConceptDOIURL(); + }else { + throw new RuntimeException(CONCEPT_DOI_URL_PROPERTY_NAME + " is indicates as " + PREVIOUS_CONCEPT_DOI_VALUE + " but " + getTitle() + " has no previous. Please check you config."); + } + } return conceptDOIURL; }