diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/QueryConfig.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/QueryConfig.java index 2e6223ab3..64c550465 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/QueryConfig.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/QueryConfig.java @@ -1,16 +1,20 @@ package eu.eudat.logic.proxy.config; +import javax.xml.bind.annotation.XmlElement; + public class QueryConfig { private String condition; private String separator; private String value; + private Integer ordinal; public String getCondition() { return condition; } + @XmlElement(name = "condition") public void setCondition(String condition) { this.condition = condition; } @@ -19,6 +23,7 @@ public class QueryConfig { return separator; } + @XmlElement(name = "separator") public void setSeparator(String separator) { this.separator = separator; } @@ -27,7 +32,17 @@ public class QueryConfig { return value; } + @XmlElement(name = "value") public void setValue(String value) { this.value = value; } + + public Integer getOrdinal() { + return ordinal; + } + + @XmlElement(name = "ordinal") + public void setOrdinal(Integer ordinal) { + this.ordinal = ordinal; + } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java index 9c1e3ab86..911493f29 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java @@ -227,7 +227,7 @@ public class RemoteFetcher { private String calculateQuery(ExternalUrlCriteria externalUrlCriteria, List queryConfigs) { String finalQuery = ""; QueryConfig queryConfig = queryConfigs.stream().filter(queryConfigl -> externalUrlCriteria.getLike().matches(queryConfigl.getCondition())) - .findFirst().orElse(null); + .min((Comparator.comparing(QueryConfig::getOrdinal))).orElse(null); if (queryConfig != null) { if (queryConfig.getSeparator() != null) { String[] likes = externalUrlCriteria.getLike().split(queryConfig.getSeparator()); @@ -295,7 +295,6 @@ public class RemoteFetcher { } else { completedPath = completedPath.replace("{path}", ""); } - logger.info(completedPath); return completedPath; } diff --git a/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml b/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml index ffedc38ff..50b3afd15 100644 --- a/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml +++ b/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml @@ -878,15 +878,18 @@ but not application/json; charset=UTF-8 + 0 ^[A-Za-z0-9]+ [A-Za-z0-9]+$ ((given-names:{like1}+AND+family-name:{like2})+OR+(given-names:{like2}+AND+family-name:{like1})) + 1 \d{4}-\d{4}-\d{4}-\d{4} orcid:{like} + 2 .+ given-names:{like}+OR+family-name:{like} @@ -896,7 +899,7 @@ but not 'orcid-id' 'given-names' - 'family-name' + 'family-names' 'name'