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']
+