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 fcc4dbcd9..0c96e45b2 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 @@ -159,10 +159,11 @@ public class RemoteFetcher { private String replaceCriteriaOnUrl(String path, ExternalUrlCriteria externalUrlCriteria, String firstPage) { String completedPath = path; if (externalUrlCriteria.getLike() != null) { - if (path.contains("openaire") && externalUrlCriteria.getLike().equals("")) + if ((path.contains("openaire") || path.contains("orcid")) && externalUrlCriteria.getLike().equals("")) { completedPath = completedPath.replaceAll("\\{like}", "*"); - else + } else { completedPath = completedPath.replaceAll("\\{like}", externalUrlCriteria.getLike()); + } } else { completedPath = completedPath.replace("{like}", ""); } @@ -186,6 +187,8 @@ public class RemoteFetcher { } if (externalUrlCriteria.getPageSize() != null) { completedPath = completedPath.replace("{pageSize}", externalUrlCriteria.getPageSize()); + } else if (path.contains("orcid")) { + completedPath = completedPath.replace("{pageSize}", "10"); } else { completedPath = completedPath.replace("{pageSize}", "60"); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/orcid/PersonalDetails.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/orcid/PersonalDetails.java new file mode 100644 index 000000000..3291e38ff --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/orcid/PersonalDetails.java @@ -0,0 +1,26 @@ +package eu.eudat.models.data.external.orcid; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import java.util.Arrays; + +@XmlRootElement(name = "personal-details", namespace = "http://www.orcid.org/ns/personal-details") +public class PersonalDetails { + + private PersonalName name; + + public PersonalDetails(PersonalName name) { + this.name = name; + } + + public PersonalDetails() { + } + + @XmlElement(name="name", namespace = "http://www.orcid.org/ns/personal-details") + public PersonalName getName() { + return name; + } + public void setName(PersonalName name) { + this.name = name; + } +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/orcid/PersonalName.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/orcid/PersonalName.java new file mode 100644 index 000000000..4e97ec6d7 --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/orcid/PersonalName.java @@ -0,0 +1,44 @@ +package eu.eudat.models.data.external.orcid; + +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name="name", namespace = "http://www.orcid.org/ns/personal-details") +public class PersonalName { + + private String id; + private String givenNames; + private String familyName; + + public PersonalName(String givenNames, String familyName) { + this.givenNames = givenNames; + this.familyName = familyName; + } + + public PersonalName() { + } + + @XmlAttribute(name = "path") + public String getId() { + return id; + } + public void setId(String id) { + this.id = id; + } + + @XmlElement(name = "given-names", namespace = "http://www.orcid.org/ns/personal-details") + public String getGivenNames() { + return givenNames; + } + public void setGivenNames(String givenNames) { + this.givenNames = givenNames; + } + @XmlElement(name = "family-name", namespace = "http://www.orcid.org/ns/personal-details") + public String getFamilyName() { + return familyName; + } + public void setFamilyName(String familyName) { + this.familyName = familyName; + } +} diff --git a/dmp-backend/web/src/main/resources/ExternalUrls.xml b/dmp-backend/web/src/main/resources/ExternalUrls.xml index 70d437e0e..da79907a5 100644 --- a/dmp-backend/web/src/main/resources/ExternalUrls.xml +++ b/dmp-backend/web/src/main/resources/ExternalUrls.xml @@ -642,6 +642,44 @@ $['meta']['pagination']['page','pages','count'] + + orcid + + 2 + External + https://pub.sandbox.orcid.org/v3.0/search/?q={like}&start={page}&rows={pageSize} + 1 + application/json; charset=utf-8 + + $['result'][*]['orcid-identifier'] + + 'id' + 'name' + 'uri' + 'path' + 'host' + + + orcid + + 3 + External + https://pub.{host}/v3.0/{path}/personal-details + 1 + + eu.eudat.models.data.external.orcid.PersonalDetails + name + + givenNames + familyName + + name + + $['num-found'] + + + $['num-found'] +