From 048189952c9522b59b4860941c0d43a2680743db Mon Sep 17 00:00:00 2001 From: Aldo Mihasi Date: Wed, 2 Feb 2022 14:15:33 +0200 Subject: [PATCH] format prefilling fixes --- .../datasetwizard/DatasetWizardModel.java | 43 +++++++++++++++++-- .../resources/externalUrls/ExternalUrls.xml | 1 + 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/datasetwizard/DatasetWizardModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/datasetwizard/DatasetWizardModel.java index 8dff940c1..e9611870c 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/datasetwizard/DatasetWizardModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/datasetwizard/DatasetWizardModel.java @@ -22,6 +22,11 @@ import eu.eudat.models.data.user.composite.PagedDatasetProfile; import net.minidev.json.JSONValue; import org.json.JSONArray; import org.json.JSONObject; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.MediaType; +import org.springframework.web.client.RestTemplate; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -29,6 +34,7 @@ import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; public class DatasetWizardModel implements DataModel { @@ -371,11 +377,11 @@ public class DatasetWizardModel implements DataModel formats = new ArrayList<>(); String extension; - for (int i = 0; i < jsonArr.length(); i++){ + for(int i = 0; i < jsonArr.length(); i++){ JSONObject jsonObj = jsonArr.getJSONObject(i); String filename = (String) jsonObj.get("filename"); int index = filename.lastIndexOf('.'); @@ -383,8 +389,37 @@ public class DatasetWizardModel implements DataModel standardFormats = new ArrayList<>(); + for(String format: formats) { + RestTemplate restTemplate = new RestTemplate(); + String parsedUrl = "https://eestore.paas2.uninett.no/api/fileformat/?search=" + format; + HttpHeaders headers = new HttpHeaders(); + headers.setAccept(Collections.singletonList(new MediaType("application", "vnd.api+json"))); + HttpEntity entity = new HttpEntity("", headers); + Map data = restTemplate.exchange(parsedUrl, HttpMethod.GET, entity, LinkedHashMap.class).getBody(); + jsonArr = new JSONArray(new ObjectMapper().writeValueAsString(data.get("data"))); + for(int i = 0; i < jsonArr.length(); i++){ + JSONObject jsonObj = jsonArr.getJSONObject(i); + jsonObj = jsonObj.getJSONObject("attributes"); + JSONArray extensions = jsonObj.getJSONArray("extensions"); + Object formatName = jsonObj.get("name"); + boolean found = false; + for(int j = 0; j < extensions.length(); j++){ + if(extensions.getString(j).equals(format)){ + JSONObject cur = new JSONObject(); + cur.put("label", formatName.toString()); + standardFormats.add(cur.toString()); + found = true; + break; + } + } + if(found){ + break; + } + } + + } + properties.put(id, standardFormats); } else if(prefillingMapping.getMaDmpTarget().equals("dataset.distribution.data_access")){ value = value.replace("\"", ""); diff --git a/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml b/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml index ee11d46a7..a8cb73d26 100644 --- a/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml +++ b/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml @@ -1040,6 +1040,7 @@ +