Add new researchers external Source from ORCID
This commit is contained in:
parent
2116838c45
commit
5f0bd15d7c
|
@ -159,10 +159,11 @@ public class RemoteFetcher {
|
||||||
private String replaceCriteriaOnUrl(String path, ExternalUrlCriteria externalUrlCriteria, String firstPage) {
|
private String replaceCriteriaOnUrl(String path, ExternalUrlCriteria externalUrlCriteria, String firstPage) {
|
||||||
String completedPath = path;
|
String completedPath = path;
|
||||||
if (externalUrlCriteria.getLike() != null) {
|
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}", "*");
|
completedPath = completedPath.replaceAll("\\{like}", "*");
|
||||||
else
|
} else {
|
||||||
completedPath = completedPath.replaceAll("\\{like}", externalUrlCriteria.getLike());
|
completedPath = completedPath.replaceAll("\\{like}", externalUrlCriteria.getLike());
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
completedPath = completedPath.replace("{like}", "");
|
completedPath = completedPath.replace("{like}", "");
|
||||||
}
|
}
|
||||||
|
@ -186,6 +187,8 @@ public class RemoteFetcher {
|
||||||
}
|
}
|
||||||
if (externalUrlCriteria.getPageSize() != null) {
|
if (externalUrlCriteria.getPageSize() != null) {
|
||||||
completedPath = completedPath.replace("{pageSize}", externalUrlCriteria.getPageSize());
|
completedPath = completedPath.replace("{pageSize}", externalUrlCriteria.getPageSize());
|
||||||
|
} else if (path.contains("orcid")) {
|
||||||
|
completedPath = completedPath.replace("{pageSize}", "10");
|
||||||
} else {
|
} else {
|
||||||
completedPath = completedPath.replace("{pageSize}", "60");
|
completedPath = completedPath.replace("{pageSize}", "60");
|
||||||
}
|
}
|
||||||
|
|
26
dmp-backend/web/src/main/java/eu/eudat/models/data/external/orcid/PersonalDetails.java
vendored
Normal file
26
dmp-backend/web/src/main/java/eu/eudat/models/data/external/orcid/PersonalDetails.java
vendored
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
44
dmp-backend/web/src/main/java/eu/eudat/models/data/external/orcid/PersonalName.java
vendored
Normal file
44
dmp-backend/web/src/main/java/eu/eudat/models/data/external/orcid/PersonalName.java
vendored
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -642,6 +642,44 @@
|
||||||
</data>
|
</data>
|
||||||
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
|
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
|
||||||
</urlConfig>
|
</urlConfig>
|
||||||
|
<urlConfig>
|
||||||
|
<key>orcid</key>
|
||||||
|
<label>ORCID</label>
|
||||||
|
<ordinal>2</ordinal>
|
||||||
|
<type>External</type>
|
||||||
|
<url>https://pub.sandbox.orcid.org/v3.0/search/?q={like}&start={page}&rows={pageSize}</url>
|
||||||
|
<firstPage>1</firstPage>
|
||||||
|
<contenttype>application/json; charset=utf-8</contenttype>
|
||||||
|
<data>
|
||||||
|
<path>$['result'][*]['orcid-identifier']</path>
|
||||||
|
<fields>
|
||||||
|
<id>'id'</id>
|
||||||
|
<name>'name'</name>
|
||||||
|
<uri>'uri'</uri>
|
||||||
|
<path>'path'</path>
|
||||||
|
<host>'host'</host>
|
||||||
|
</fields>
|
||||||
|
<urlConfig>
|
||||||
|
<key>orcid</key>
|
||||||
|
<label>ORCID</label>
|
||||||
|
<ordinal>3</ordinal>
|
||||||
|
<type>External</type>
|
||||||
|
<url>https://pub.{host}/v3.0/{path}/personal-details</url>
|
||||||
|
<firstPage>1</firstPage>
|
||||||
|
<data>
|
||||||
|
<parse-class>eu.eudat.models.data.external.orcid.PersonalDetails</parse-class>
|
||||||
|
<parse-field>name</parse-field>
|
||||||
|
<merge-fields>
|
||||||
|
<field>givenNames</field>
|
||||||
|
<field>familyName</field>
|
||||||
|
</merge-fields>
|
||||||
|
<merge-field-name>name</merge-field-name>
|
||||||
|
</data>
|
||||||
|
<paginationpath>$['num-found']</paginationpath>
|
||||||
|
</urlConfig>
|
||||||
|
</data>
|
||||||
|
<paginationpath>$['num-found']</paginationpath>
|
||||||
|
</urlConfig>
|
||||||
<!-- <urlConfig>
|
<!-- <urlConfig>
|
||||||
<key>openAire</key>
|
<key>openAire</key>
|
||||||
<label>OpenAIRE</label>
|
<label>OpenAIRE</label>
|
||||||
|
|
Loading…
Reference in New Issue