mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-14 21:43:11 +00:00
109807: Live Import - PubMed - support optional apiKey config
(cherry picked from commit c25433ee17
)
This commit is contained in:

committed by
github-actions[bot]
![github-actions[bot]](/assets/img/avatar_default.png)
parent
13f27bc0a8
commit
4ce1f73033
@@ -55,6 +55,7 @@ public class PubmedImportMetadataSourceServiceImpl extends AbstractImportMetadat
|
|||||||
|
|
||||||
private String urlFetch;
|
private String urlFetch;
|
||||||
private String urlSearch;
|
private String urlSearch;
|
||||||
|
private String apiKey;
|
||||||
|
|
||||||
private int attempt = 3;
|
private int attempt = 3;
|
||||||
|
|
||||||
@@ -210,6 +211,9 @@ public class PubmedImportMetadataSourceServiceImpl extends AbstractImportMetadat
|
|||||||
@Override
|
@Override
|
||||||
public Integer call() throws Exception {
|
public Integer call() throws Exception {
|
||||||
URIBuilder uriBuilder = new URIBuilder(urlSearch);
|
URIBuilder uriBuilder = new URIBuilder(urlSearch);
|
||||||
|
if (StringUtils.isNotBlank(apiKey)) {
|
||||||
|
uriBuilder.addParameter("api_key", apiKey);
|
||||||
|
}
|
||||||
uriBuilder.addParameter("db", "pubmed");
|
uriBuilder.addParameter("db", "pubmed");
|
||||||
uriBuilder.addParameter("term", query.getParameterAsClass("query", String.class));
|
uriBuilder.addParameter("term", query.getParameterAsClass("query", String.class));
|
||||||
Map<String, Map<String, String>> params = new HashMap<String, Map<String,String>>();
|
Map<String, Map<String, String>> params = new HashMap<String, Map<String,String>>();
|
||||||
@@ -286,6 +290,9 @@ public class PubmedImportMetadataSourceServiceImpl extends AbstractImportMetadat
|
|||||||
List<ImportRecord> records = new LinkedList<ImportRecord>();
|
List<ImportRecord> records = new LinkedList<ImportRecord>();
|
||||||
|
|
||||||
URIBuilder uriBuilder = new URIBuilder(urlSearch);
|
URIBuilder uriBuilder = new URIBuilder(urlSearch);
|
||||||
|
if (StringUtils.isNotBlank(apiKey)) {
|
||||||
|
uriBuilder.addParameter("api_key", apiKey);
|
||||||
|
}
|
||||||
uriBuilder.addParameter("db", "pubmed");
|
uriBuilder.addParameter("db", "pubmed");
|
||||||
uriBuilder.addParameter("retstart", start.toString());
|
uriBuilder.addParameter("retstart", start.toString());
|
||||||
uriBuilder.addParameter("retmax", count.toString());
|
uriBuilder.addParameter("retmax", count.toString());
|
||||||
@@ -316,6 +323,9 @@ public class PubmedImportMetadataSourceServiceImpl extends AbstractImportMetadat
|
|||||||
String webEnv = getSingleElementValue(response, "WebEnv");
|
String webEnv = getSingleElementValue(response, "WebEnv");
|
||||||
|
|
||||||
URIBuilder uriBuilder2 = new URIBuilder(urlFetch);
|
URIBuilder uriBuilder2 = new URIBuilder(urlFetch);
|
||||||
|
if (StringUtils.isNotBlank(apiKey)) {
|
||||||
|
uriBuilder2.addParameter("api_key", apiKey);
|
||||||
|
}
|
||||||
uriBuilder2.addParameter("db", "pubmed");
|
uriBuilder2.addParameter("db", "pubmed");
|
||||||
uriBuilder2.addParameter("retstart", start.toString());
|
uriBuilder2.addParameter("retstart", start.toString());
|
||||||
uriBuilder2.addParameter("retmax", count.toString());
|
uriBuilder2.addParameter("retmax", count.toString());
|
||||||
@@ -388,6 +398,9 @@ public class PubmedImportMetadataSourceServiceImpl extends AbstractImportMetadat
|
|||||||
public ImportRecord call() throws Exception {
|
public ImportRecord call() throws Exception {
|
||||||
|
|
||||||
URIBuilder uriBuilder = new URIBuilder(urlFetch);
|
URIBuilder uriBuilder = new URIBuilder(urlFetch);
|
||||||
|
if (StringUtils.isNotBlank(apiKey)) {
|
||||||
|
uriBuilder.addParameter("api_key", apiKey);
|
||||||
|
}
|
||||||
uriBuilder.addParameter("db", "pubmed");
|
uriBuilder.addParameter("db", "pubmed");
|
||||||
uriBuilder.addParameter("retmode", "xml");
|
uriBuilder.addParameter("retmode", "xml");
|
||||||
uriBuilder.addParameter("id", query.getParameterAsClass("id", String.class));
|
uriBuilder.addParameter("id", query.getParameterAsClass("id", String.class));
|
||||||
@@ -428,6 +441,9 @@ public class PubmedImportMetadataSourceServiceImpl extends AbstractImportMetadat
|
|||||||
public Collection<ImportRecord> call() throws Exception {
|
public Collection<ImportRecord> call() throws Exception {
|
||||||
|
|
||||||
URIBuilder uriBuilder = new URIBuilder(urlSearch);
|
URIBuilder uriBuilder = new URIBuilder(urlSearch);
|
||||||
|
if (StringUtils.isNotBlank(apiKey)) {
|
||||||
|
uriBuilder.addParameter("api_key", apiKey);
|
||||||
|
}
|
||||||
uriBuilder.addParameter("db", "pubmed");
|
uriBuilder.addParameter("db", "pubmed");
|
||||||
uriBuilder.addParameter("usehistory", "y");
|
uriBuilder.addParameter("usehistory", "y");
|
||||||
uriBuilder.addParameter("term", query.getParameterAsClass("term", String.class));
|
uriBuilder.addParameter("term", query.getParameterAsClass("term", String.class));
|
||||||
@@ -457,6 +473,9 @@ public class PubmedImportMetadataSourceServiceImpl extends AbstractImportMetadat
|
|||||||
String queryKey = getSingleElementValue(response, "QueryKey");
|
String queryKey = getSingleElementValue(response, "QueryKey");
|
||||||
|
|
||||||
URIBuilder uriBuilder2 = new URIBuilder(urlFetch);
|
URIBuilder uriBuilder2 = new URIBuilder(urlFetch);
|
||||||
|
if (StringUtils.isNotBlank(apiKey)) {
|
||||||
|
uriBuilder.addParameter("api_key", apiKey);
|
||||||
|
}
|
||||||
uriBuilder2.addParameter("db", "pubmed");
|
uriBuilder2.addParameter("db", "pubmed");
|
||||||
uriBuilder2.addParameter("retmode", "xml");
|
uriBuilder2.addParameter("retmode", "xml");
|
||||||
uriBuilder2.addParameter("WebEnv", webEnv);
|
uriBuilder2.addParameter("WebEnv", webEnv);
|
||||||
@@ -532,4 +551,8 @@ public class PubmedImportMetadataSourceServiceImpl extends AbstractImportMetadat
|
|||||||
this.urlSearch = urlSearch;
|
this.urlSearch = urlSearch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setApiKey(String apiKey) {
|
||||||
|
this.apiKey = apiKey;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -70,6 +70,7 @@
|
|||||||
<property name="metadataFieldMapping" ref="pubmedMetadataFieldMapping"/>
|
<property name="metadataFieldMapping" ref="pubmedMetadataFieldMapping"/>
|
||||||
<property name="urlFetch" value="${pubmed.url.fetch}"/>
|
<property name="urlFetch" value="${pubmed.url.fetch}"/>
|
||||||
<property name="urlSearch" value="${pubmed.url.search}"/>
|
<property name="urlSearch" value="${pubmed.url.search}"/>
|
||||||
|
<property name="apiKey" value="${pubmed.apiKey}"/>
|
||||||
<property name="generateQueryForItem" ref="pubmedService"></property>
|
<property name="generateQueryForItem" ref="pubmedService"></property>
|
||||||
<property name="interRequestTime" value="500"/>
|
<property name="interRequestTime" value="500"/>
|
||||||
<property name="supportedExtensions">
|
<property name="supportedExtensions">
|
||||||
|
@@ -45,6 +45,9 @@ epo.searchUrl = https://ops.epo.org/rest-services/published-data/search
|
|||||||
#################################################################
|
#################################################################
|
||||||
#---------------------- PubMed -----------------------------#
|
#---------------------- PubMed -----------------------------#
|
||||||
#---------------------------------------------------------------#
|
#---------------------------------------------------------------#
|
||||||
|
# If apiKey is set then it's used, if not set or blank then it's not
|
||||||
|
# Max amount of requests per ip per second with apiKey is 10; without 3
|
||||||
|
pubmed.apiKey =
|
||||||
pubmed.url.search = https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi
|
pubmed.url.search = https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi
|
||||||
pubmed.url.fetch = https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi
|
pubmed.url.fetch = https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi
|
||||||
#################################################################
|
#################################################################
|
||||||
|
Reference in New Issue
Block a user