private Response getOrcidSearchResultsResponse(OrcidSearchResults orcidSearchResults, String query) { if (orcidSearchResults != null) { OrcidMessage orcidMessage = new OrcidMessage(); orcidMessage.setMessageVersion("1.2"); orcidMessage.setOrcidSearchResults(orcidSearchResults); orcidMessageUtil.setSourceName(orcidMessage); //TODO: THIS FAILS if there is no profile in SOLR (org.orcid.core.indexPublicProfile=false or via message-listener) return Response.ok(orcidMessage).build(); } else { Object params[] = { query }; throw new NoResultException(localeManager.resolveMessage("apiError.no_search_result.exception", params)); } } }
@Override public OrcidMessage findOrcidSearchResultsById(String orcid) { OrcidMessage orcidMessage = new OrcidMessage(); OrcidSearchResults searchResults = new OrcidSearchResults(); OrcidSolrResult indexedOrcid = solrDao.findByOrcid(orcid); if (indexedOrcid != null) { List<OrcidSearchResult> orcidSearchResults = buildSearchResultsFromPublicProfile(Arrays.asList(indexedOrcid)); searchResults.getOrcidSearchResult().addAll(orcidSearchResults); } orcidMessage.setOrcidSearchResults(searchResults); searchResults.setNumFound(1); return orcidMessage; }
@Override public OrcidMessage findOrcidSearchResultsById(String orcid) { OrcidMessage orcidMessage = new OrcidMessage(); OrcidSearchResults searchResults = new OrcidSearchResults(); OrcidSolrResult indexedOrcid = solrDao.findByOrcid(orcid); if (indexedOrcid != null) { List<OrcidSearchResult> orcidSearchResults = buildSearchResultsFromPublicProfile(Arrays.asList(indexedOrcid)); searchResults.getOrcidSearchResult().addAll(orcidSearchResults); } orcidMessage.setOrcidSearchResults(searchResults); searchResults.setNumFound(1); return orcidMessage; }
@Override public OrcidMessage findOrcidsByQuery(Map<String, List<String>> query) { OrcidMessage orcidMessage = new OrcidMessage(); OrcidSearchResults searchResults = new OrcidSearchResults(); OrcidSolrResults orcidSolrResults = solrDao.findByDocumentCriteria(query); searchResults.setNumFound(orcidSolrResults.getNumFound()); List<OrcidSolrResult> indexedOrcids = orcidSolrResults.getResults(); if (indexedOrcids != null && !indexedOrcids.isEmpty()) { List<OrcidSearchResult> orcidSearchResults = buildSearchResultsFromPublicProfile(indexedOrcids); searchResults.getOrcidSearchResult().addAll(orcidSearchResults); } orcidMessage.setOrcidSearchResults(searchResults); return orcidMessage; }
@Override public OrcidMessage findOrcidsByQuery(String query, Integer start, Integer rows) { OrcidMessage orcidMessage = new OrcidMessage(); OrcidSearchResults searchResults = new OrcidSearchResults(); OrcidSolrResults orcidSolrResults = solrDao.findByDocumentCriteria(query, start, rows); searchResults.setNumFound(orcidSolrResults.getNumFound()); List<OrcidSolrResult> indexedOrcids = orcidSolrResults.getResults(); if (indexedOrcids != null && !indexedOrcids.isEmpty()) { List<OrcidSearchResult> orcidSearchResults = buildSearchResultsFromPublicProfile(indexedOrcids); searchResults.getOrcidSearchResult().addAll(orcidSearchResults); } orcidMessage.setOrcidSearchResults(searchResults); return orcidMessage; }
@Override public OrcidMessage findOrcidsByQuery(String query, Integer start, Integer rows) { OrcidMessage orcidMessage = new OrcidMessage(); OrcidSearchResults searchResults = new OrcidSearchResults(); OrcidSolrResults orcidSolrResults = solrDao.findByDocumentCriteria(query, start, rows); searchResults.setNumFound(orcidSolrResults.getNumFound()); List<OrcidSolrResult> indexedOrcids = orcidSolrResults.getResults(); if (indexedOrcids != null && !indexedOrcids.isEmpty()) { List<OrcidSearchResult> orcidSearchResults = buildSearchResultsFromPublicProfile(indexedOrcids); searchResults.getOrcidSearchResult().addAll(orcidSearchResults); } orcidMessage.setOrcidSearchResults(searchResults); return orcidMessage; }
@Override public OrcidMessage findOrcidsByQuery(Map<String, List<String>> query) { OrcidMessage orcidMessage = new OrcidMessage(); OrcidSearchResults searchResults = new OrcidSearchResults(); OrcidSolrResults orcidSolrResults = solrDao.findByDocumentCriteria(query); searchResults.setNumFound(orcidSolrResults.getNumFound()); List<OrcidSolrResult> indexedOrcids = orcidSolrResults.getResults(); if (indexedOrcids != null && !indexedOrcids.isEmpty()) { List<OrcidSearchResult> orcidSearchResults = buildSearchResultsFromPublicProfile(indexedOrcids); searchResults.getOrcidSearchResult().addAll(orcidSearchResults); } orcidMessage.setOrcidSearchResults(searchResults); return orcidMessage; }