diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataRepositoryManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataRepositoryManager.java index 31634fe0c..fc6cb8f9d 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataRepositoryManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataRepositoryManager.java @@ -38,7 +38,7 @@ public class DataRepositoryManager { public List getDataRepositories(String query, String type, Principal principal) throws HugeResultSet, NoURLFound { ExternalUrlCriteria externalUrlCriteria = new ExternalUrlCriteria(query); - List> remoteRepos = this.apiContext.getOperationsContext().getRemoteFetcher().getRepositories(externalUrlCriteria, type); + List> remoteRepos = this.apiContext.getOperationsContext().getRemoteFetcher().getRepositories(externalUrlCriteria, type); DataRepositoryCriteria criteria = new DataRepositoryCriteria(); if (!query.isEmpty()) criteria.setLike(query); diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ExternalDatasetManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ExternalDatasetManager.java index f8f72ce31..2d8f12fa7 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ExternalDatasetManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ExternalDatasetManager.java @@ -57,7 +57,7 @@ public class ExternalDatasetManager { // Fetch external Datasets from external sources. ExternalUrlCriteria externalUrlCriteria = new ExternalUrlCriteria(query); - List> remoteRepos = remoteFetcher.getDatasets(externalUrlCriteria, type); + List> remoteRepos = remoteFetcher.getDatasets(externalUrlCriteria, type); // Parse items from external sources to listing models. ObjectMapper mapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/FunderManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/FunderManager.java index a14a1e8df..fd4567e03 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/FunderManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/FunderManager.java @@ -42,7 +42,7 @@ public class FunderManager { QueryableList authItems = apiContext.getOperationsContext().getDatabaseRepository().getFunderDao().getAuthenticated(items, userInfo); List funders = authItems.select(item -> new eu.eudat.models.data.funder.Funder().fromDataModel(item)); ExternalUrlCriteria externalUrlCriteria = new ExternalUrlCriteria(funderCriteria.getCriteria().getLike()); - List> remoteRepos = remoteFetcher.getFunders(externalUrlCriteria); + List> remoteRepos = remoteFetcher.getFunders(externalUrlCriteria); FundersExternalSourcesModel fundersExternalSourcesModel = new FundersExternalSourcesModel().fromExternalItem(remoteRepos); for (ExternalSourcesItemModel externalListingItem : fundersExternalSourcesModel) { eu.eudat.models.data.funder.Funder funder = apiContext.getOperationsContext().getBuilderFactory().getBuilder(FunderBuilder.class) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/GrantManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/GrantManager.java index e020593ed..885940a36 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/GrantManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/GrantManager.java @@ -126,7 +126,7 @@ public class GrantManager { QueryableList authItems = apiContext.getOperationsContext().getDatabaseRepository().getGrantDao().getAuthenticated(items, userInfo); List grants = authItems.select(item -> new Grant().fromDataModel(item)); - List> remoteRepos = remoteFetcher.getGrants(externalUrlCriteria); + List> remoteRepos = remoteFetcher.getGrants(externalUrlCriteria); GrantsExternalSourcesModel grantsExternalSourcesModel = new GrantsExternalSourcesModel().fromExternalItem(remoteRepos); for (ExternalSourcesItemModel externalListingItem : grantsExternalSourcesModel) { diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/LicenseManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/LicenseManager.java index da06aedd3..fe174fe29 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/LicenseManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/LicenseManager.java @@ -33,7 +33,7 @@ public class LicenseManager { public List getLicenses(String query, String type) throws HugeResultSet, NoURLFound { ExternalUrlCriteria externalUrlCriteria = new ExternalUrlCriteria(query); - List> remoteRepos = this.apiContext.getOperationsContext().getRemoteFetcher().getlicenses(externalUrlCriteria, type); + List> remoteRepos = this.apiContext.getOperationsContext().getRemoteFetcher().getlicenses(externalUrlCriteria, type); DataRepositoryCriteria criteria = new DataRepositoryCriteria(); if (!query.isEmpty()) criteria.setLike(query); diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/OrganisationsManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/OrganisationsManager.java index 5e67be552..0860c3391 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/OrganisationsManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/OrganisationsManager.java @@ -68,7 +68,7 @@ public class OrganisationsManager { public List getCriteriaWithExternal(String query, String type) throws HugeResultSet, NoURLFound { ExternalUrlCriteria externalUrlCriteria = new ExternalUrlCriteria(query); - List> remoteRepos = apiContext.getOperationsContext().getRemoteFetcher().getOrganisations(externalUrlCriteria, type); + List> remoteRepos = apiContext.getOperationsContext().getRemoteFetcher().getOrganisations(externalUrlCriteria, type); OrganisationsExternalSourcesModel organisationsExternalSourcesModel = new OrganisationsExternalSourcesModel().fromExternalItem(remoteRepos); List organisations = new LinkedList<>(); for (ExternalSourcesItemModel externalListingItem : organisationsExternalSourcesModel) { diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java index 6919a5de5..f02242826 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java @@ -41,7 +41,7 @@ public class ProjectManager { QueryableList authItems = apiContext.getOperationsContext().getDatabaseRepository().getProjectDao().getAuthenticated(items, userInfo); List projects = authItems.select(item -> new Project().fromDataModel(item)); ExternalUrlCriteria externalUrlCriteria = new ExternalUrlCriteria(projectCriteria.getCriteria().getLike()); - List> remoteRepos = remoteFetcher.getProjects(externalUrlCriteria); + List> remoteRepos = remoteFetcher.getProjects(externalUrlCriteria); ProjectsExternalSourcesModel projectsExternalSourcesModel = new ProjectsExternalSourcesModel().fromExternalItem(remoteRepos); for (ExternalSourcesItemModel externalListingItem : projectsExternalSourcesModel) { eu.eudat.models.data.project.Project project = apiContext.getOperationsContext().getBuilderFactory().getBuilder(ProjectBuilder.class) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/RegistryManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/RegistryManager.java index 9220d6221..c9444e002 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/RegistryManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/RegistryManager.java @@ -39,7 +39,7 @@ public class RegistryManager { public List getRegistries(String query, String type, Principal principal) throws HugeResultSet, NoURLFound { ExternalUrlCriteria externalUrlCriteria = new ExternalUrlCriteria(query); - List> remoteRepos = this.apiContext.getOperationsContext().getRemoteFetcher().getRegistries(externalUrlCriteria, type); + List> remoteRepos = this.apiContext.getOperationsContext().getRemoteFetcher().getRegistries(externalUrlCriteria, type); RegistryCriteria criteria = new RegistryCriteria(); if (!query.isEmpty()) criteria.setLike(query); diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ResearcherManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ResearcherManager.java index 0d9104056..e7c54eecc 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ResearcherManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ResearcherManager.java @@ -57,7 +57,7 @@ public class ResearcherManager { item.setTag(keyToSourceMap.get(item.getKey())); } ExternalUrlCriteria externalUrlCriteria = new ExternalUrlCriteria(researcherCriteriaRequest.getCriteria().getName()); - List> remoteRepos = remoteFetcher.getResearchers(externalUrlCriteria,null); + List> remoteRepos = remoteFetcher.getResearchers(externalUrlCriteria,null); ResearchersExternalSourcesModel researchersExternalSourcesModel = new ResearchersExternalSourcesModel().fromExternalItem(remoteRepos); for (ExternalSourcesItemModel externalListingItem : researchersExternalSourcesModel) { eu.eudat.models.data.dmp.Researcher researcher = apiContext.getOperationsContext().getBuilderFactory().getBuilder(ResearcherBuilder.class) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ServiceManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ServiceManager.java index 222aa3675..2b724ca27 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ServiceManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ServiceManager.java @@ -36,7 +36,7 @@ public class ServiceManager { public List getServices(String query, String type, Principal principal) throws HugeResultSet, NoURLFound { ExternalUrlCriteria externalUrlCriteria = new ExternalUrlCriteria(query); - List> remoteRepos = this.apiContext.getOperationsContext().getRemoteFetcher().getServices(externalUrlCriteria, type); + List> remoteRepos = this.apiContext.getOperationsContext().getRemoteFetcher().getServices(externalUrlCriteria, type); ServiceCriteria criteria = new ServiceCriteria(); if (!query.isEmpty()) criteria.setLike(query); 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 41f42281c..05cad3823 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 @@ -43,7 +43,7 @@ public class RemoteFetcher { } @Cacheable("repositories") - public List> getRepositories(ExternalUrlCriteria externalUrlCriteria, String key) throws NoURLFound, HugeResultSet { + public List> getRepositories(ExternalUrlCriteria externalUrlCriteria, String key) throws NoURLFound, HugeResultSet { List urlConfigs = key != null && !key.isEmpty() ? configLoader.getExternalUrls().getRepositories().getUrls().stream().filter(item -> item.getKey().equals(key)).collect(Collectors.toList()) : configLoader.getExternalUrls().getRepositories().getUrls(); @@ -52,28 +52,28 @@ public class RemoteFetcher { } @Cacheable("grants") - public List> getGrants(ExternalUrlCriteria externalUrlCriteria) throws NoURLFound, HugeResultSet { + public List> getGrants(ExternalUrlCriteria externalUrlCriteria) throws NoURLFound, HugeResultSet { List urlConfigs = configLoader.getExternalUrls().getGrants().getUrls(); FetchStrategy fetchStrategy = configLoader.getExternalUrls().getGrants().getFetchMode(); return getAll(urlConfigs, fetchStrategy, externalUrlCriteria); } @Cacheable("projects") - public List> getProjects(ExternalUrlCriteria externalUrlCriteria) throws NoURLFound, HugeResultSet { + public List> getProjects(ExternalUrlCriteria externalUrlCriteria) throws NoURLFound, HugeResultSet { List urlConfigs = configLoader.getExternalUrls().getProjects().getUrls(); FetchStrategy fetchStrategy = configLoader.getExternalUrls().getProjects().getFetchMode(); return getAll(urlConfigs, fetchStrategy, externalUrlCriteria); } @Cacheable("funders") - public List> getFunders(ExternalUrlCriteria externalUrlCriteria) throws NoURLFound, HugeResultSet { + public List> getFunders(ExternalUrlCriteria externalUrlCriteria) throws NoURLFound, HugeResultSet { List urlConfigs = configLoader.getExternalUrls().getFunders().getUrls(); FetchStrategy fetchStrategy = configLoader.getExternalUrls().getFunders().getFetchMode(); return getAll(urlConfigs, fetchStrategy, externalUrlCriteria); } @Cacheable("organisations") - public List> getOrganisations(ExternalUrlCriteria externalUrlCriteria, String key) throws NoURLFound, HugeResultSet { + public List> getOrganisations(ExternalUrlCriteria externalUrlCriteria, String key) throws NoURLFound, HugeResultSet { List urlConfigs = key != null && !key.isEmpty() ? configLoader.getExternalUrls().getOrganisations().getUrls().stream().filter(item -> item.getKey().equals(key)).collect(Collectors.toList()) : configLoader.getExternalUrls().getOrganisations().getUrls(); @@ -82,7 +82,7 @@ public class RemoteFetcher { } @Cacheable("registries") - public List> getRegistries(ExternalUrlCriteria externalUrlCriteria, String key) throws NoURLFound, HugeResultSet { + public List> getRegistries(ExternalUrlCriteria externalUrlCriteria, String key) throws NoURLFound, HugeResultSet { List urlConfigs = key != null && !key.isEmpty() ? configLoader.getExternalUrls().getRegistries().getUrls().stream().filter(item -> item.getKey().equals(key)).collect(Collectors.toList()) : configLoader.getExternalUrls().getRegistries().getUrls(); @@ -91,7 +91,7 @@ public class RemoteFetcher { } @Cacheable("services") - public List> getServices(ExternalUrlCriteria externalUrlCriteria, String key) throws NoURLFound, HugeResultSet { + public List> getServices(ExternalUrlCriteria externalUrlCriteria, String key) throws NoURLFound, HugeResultSet { List urlConfigs = key != null && !key.isEmpty() ? configLoader.getExternalUrls().getServices().getUrls().stream().filter(item -> item.getKey().equals(key)).collect(Collectors.toList()) : configLoader.getExternalUrls().getServices().getUrls(); @@ -100,7 +100,7 @@ public class RemoteFetcher { } @Cacheable("researchers") - public List> getResearchers(ExternalUrlCriteria externalUrlCriteria, String key) throws NoURLFound, HugeResultSet { + public List> getResearchers(ExternalUrlCriteria externalUrlCriteria, String key) throws NoURLFound, HugeResultSet { List urlConfigs = key != null && !key.isEmpty() ? configLoader.getExternalUrls().getResearchers().getUrls().stream().filter(item -> item.getKey().equals(key)).collect(Collectors.toList()) : configLoader.getExternalUrls().getResearchers().getUrls(); @@ -118,7 +118,7 @@ public class RemoteFetcher { }*/ @Cacheable("externalDatasets") - public List> getDatasets(ExternalUrlCriteria externalUrlCriteria, String key) throws NoURLFound, HugeResultSet { + public List> getDatasets(ExternalUrlCriteria externalUrlCriteria, String key) throws NoURLFound, HugeResultSet { List urlConfigs = key != null && !key.isEmpty() ? configLoader.getExternalUrls().getDatasets().getUrls().stream().filter(item -> item.getKey().equals(key)).collect(Collectors.toList()) : configLoader.getExternalUrls().getDatasets().getUrls(); @@ -127,7 +127,7 @@ public class RemoteFetcher { } @Cacheable("licenses") - public List> getlicenses(ExternalUrlCriteria externalUrlCriteria, String key) throws NoURLFound, HugeResultSet { + public List> getlicenses(ExternalUrlCriteria externalUrlCriteria, String key) throws NoURLFound, HugeResultSet { List urlConfigs = key != null && !key.isEmpty() ? configLoader.getExternalUrls().getLicenses().getUrls().stream().filter(item -> item.getKey().equals(key)).collect(Collectors.toList()) : configLoader.getExternalUrls().getLicenses().getUrls(); @@ -136,9 +136,9 @@ public class RemoteFetcher { } - private List> getAll(List urlConfigs, FetchStrategy fetchStrategy, ExternalUrlCriteria externalUrlCriteria) throws NoURLFound, HugeResultSet { + private List> getAll(List urlConfigs, FetchStrategy fetchStrategy, ExternalUrlCriteria externalUrlCriteria) throws NoURLFound, HugeResultSet { - List> results = new LinkedList<>(); + List> results = new LinkedList<>(); if (urlConfigs == null || urlConfigs.isEmpty()) return results; // throw new NoURLFound("No Repository urls found in configuration"); @@ -217,7 +217,7 @@ public class RemoteFetcher { return completedPath; } - private List> getAllResultsFromUrl(String path, FetchStrategy fetchStrategy, final DataUrlConfiguration jsonDataPath, final String jsonPaginationPath, ExternalUrlCriteria externalUrlCriteria, String tag, String key, String contentType, String firstPage) throws HugeResultSet { + private List> getAllResultsFromUrl(String path, FetchStrategy fetchStrategy, final DataUrlConfiguration jsonDataPath, final String jsonPaginationPath, ExternalUrlCriteria externalUrlCriteria, String tag, String key, String contentType, String firstPage) throws HugeResultSet { Set pages = new HashSet<>(); String replacedPath = replaceCriteriaOnUrl(path, externalUrlCriteria, firstPage); @@ -277,12 +277,26 @@ public class RemoteFetcher { + "[" + jsonDataPath.getFieldsUrlConfiguration().getName() + "," + jsonDataPath.getFieldsUrlConfiguration().getId() + "]"), new HashMap<>(1, 1)); - List> fixedResults = results.getResults().stream().map(item -> { + List> fixedResults = results.getResults().stream().map(item -> { String id = jsonDataPath.getFieldsUrlConfiguration().getId().replace("'", ""); + String name = jsonDataPath.getFieldsUrlConfiguration().getName().replace("'", ""); if (! (item.get(id) instanceof String)) { - Object obj = item.get(id); - JSONArray jarr = (JSONArray) obj; - item.put(id, jarr.get(0).toString()); + if (item.get(id) instanceof LinkedHashMap) { + item.put(id, ((Map)item.get(id)).get("content")); + } else { + Object obj = item.get(id); + JSONArray jarr = (JSONArray) obj; + item.put(id, jarr.get(0).toString()); + } + } + if (! (item.get(name) instanceof String)) { + if (item.get(name) instanceof LinkedHashMap) { + item.put(name, ((Map)item.get(name)).get("content")); + } else { + Object obj = item.get(name); + JSONArray jarr = (JSONArray) obj; + item.put(name, ((Map)jarr.get(1)).get("content")); + } } return item; }).collect(Collectors.toList()); @@ -294,10 +308,10 @@ public class RemoteFetcher { + "," + jsonDataPath.getFieldsUrlConfiguration().getHost() + "]"), new HashMap<>(1, 1)); - List> multiResults = results.results.stream().map(result -> { + List> multiResults = results.results.stream().map(result -> { ExternalUrlCriteria externalUrlCriteria = new ExternalUrlCriteria(); - externalUrlCriteria.setPath(result.get("path")); - externalUrlCriteria.setHost(result.get("host")); + externalUrlCriteria.setPath((String) result.get("path")); + externalUrlCriteria.setHost((String) result.get("host")); String replacedPath = replaceCriteriaOnUrl(jsonDataPath.getUrlConfiguration().getUrl(), externalUrlCriteria, jsonDataPath.getUrlConfiguration().getFirstpage()); return getResultsFromUrl(replacedPath, jsonDataPath.getUrlConfiguration().getData(), jsonDataPath.getUrlConfiguration().getData().getPath(), jsonDataPath.getUrlConfiguration().getContentType()); }).filter(Objects::nonNull).map(results1 -> results1.results.get(0)).collect(Collectors.toList()); @@ -306,9 +320,9 @@ public class RemoteFetcher { List> tempRes = jsonContext.read(jsonDataPath.getPath() + "[" + jsonDataPath.getFieldsUrlConfiguration().getId() + "," + jsonDataPath.getFieldsUrlConfiguration().getName() + "," + jsonDataPath.getFieldsUrlConfiguration().getTypes() + "," + jsonDataPath.getFieldsUrlConfiguration().getUri() + "]"); - List> finalRes = new ArrayList<>(); + List> finalRes = new ArrayList<>(); tempRes.forEach(map -> { - Map resMap = new HashMap<>(); + Map resMap = new HashMap<>(); map.forEach((key, value) -> { if (key.equals(jsonDataPath.getFieldsUrlConfiguration().getTypes().substring(1, jsonDataPath.getFieldsUrlConfiguration().getTypes().length() - 1))) { resMap.put("tags", ((JSONArray) value).toJSONString()); @@ -343,7 +357,7 @@ public class RemoteFetcher { reader = new PropertyDescriptor(jsonDataPath.getParseField(), aClass).getReadMethod(); } ObjectMapper objectMapper = new ObjectMapper(); - List> values = new ArrayList<>(); + List> values = new ArrayList<>(); int max = 1; if (reader != null) { Object invokedField = reader.invoke(data); @@ -363,10 +377,10 @@ public class RemoteFetcher { } else { value = data; } - Map map = objectMapper.convertValue(value, Map.class); + Map map = objectMapper.convertValue(value, Map.class); if (jsonDataPath.getMergedFields() != null && !jsonDataPath.getMergedFields().isEmpty() && jsonDataPath.getMergedFieldName() != null && !jsonDataPath.getMergedFieldName().isEmpty()) { - Map finalMap = new HashMap<>(); - for (Map.Entry entry : map.entrySet()) { + Map finalMap = new HashMap<>(); + for (Map.Entry entry : map.entrySet()) { if (jsonDataPath.getMergedFields().contains(entry.getKey())) { if (!finalMap.containsKey(jsonDataPath.getMergedFieldName())) { finalMap.put(jsonDataPath.getMergedFieldName(), entry.getValue()); @@ -402,8 +416,8 @@ public class RemoteFetcher { return null; } - private List> getAllResultsFromMockUpJson(String path, String query) { - List> internalResults; + private List> getAllResultsFromMockUpJson(String path, String query) { + List> internalResults; try { String filePath = Paths.get(path).toUri().toURL().toString(); ObjectMapper mapper = new ObjectMapper(); @@ -415,14 +429,14 @@ public class RemoteFetcher { } } - private List> searchListMap(List> internalResults, String query) { - List> list = new LinkedList<>(); - for (Map map : internalResults) + private List> searchListMap(List> internalResults, String query) { + List> list = new LinkedList<>(); + for (Map map : internalResults) { - if (map.get("name") != null && map.get("name").toUpperCase().contains(query.toUpperCase())) { + if (map.get("name") != null && ((String)map.get("name")).toUpperCase().contains(query.toUpperCase())) { list.add(map); } - if (map.get("label") != null && map.get("label").toUpperCase().contains(query.toUpperCase())) { + if (map.get("label") != null && ((String)map.get("label")).toUpperCase().contains(query.toUpperCase())) { list.add(map); } } @@ -443,7 +457,7 @@ public class RemoteFetcher { static class Results { - List> results; + List> results; Map pagination; Results() { @@ -451,16 +465,16 @@ public class RemoteFetcher { this.pagination = new HashMap<>(); } - Results(List> results, Map pagination) { + Results(List> results, Map pagination) { this.results = results; this.pagination = pagination; } - List> getResults() { + List> getResults() { return results; } - public void setResults(List> results) { + public void setResults(List> results) { this.results = results; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalDatasetSourcesModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalDatasetSourcesModel.java index 405e5ee92..0e19c57f2 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalDatasetSourcesModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalDatasetSourcesModel.java @@ -6,13 +6,13 @@ import java.util.Map; public class ExternalDatasetSourcesModel extends ExternalListingItem { @Override - public ExternalDatasetSourcesModel fromExternalItem(List> values) { - for (Map item : values) { + public ExternalDatasetSourcesModel fromExternalItem(List> values) { + for (Map item : values) { ExternalSourcesItemModel model = new ExternalSourcesItemModel(); - model.setId(item.get("pid")); - model.setUri(item.get("uri")); - model.setName(item.get("name")); - model.setSource(item.get("source")); + model.setId((String)item.get("pid")); + model.setUri((String)item.get("uri")); + model.setName((String)item.get("name")); + model.setSource((String)item.get("source")); this.add(model); } return this; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalItem.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalItem.java index a8fed07a2..65c05c520 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalItem.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalItem.java @@ -5,5 +5,5 @@ import java.util.Map; public interface ExternalItem { - T fromExternalItem(List> values); + T fromExternalItem(List> values); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/FundersExternalSourcesModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/FundersExternalSourcesModel.java index 9ef6c2c8d..78a766235 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/FundersExternalSourcesModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/FundersExternalSourcesModel.java @@ -6,16 +6,16 @@ import java.util.Map; public class FundersExternalSourcesModel extends ExternalListingItem { @Override - public FundersExternalSourcesModel fromExternalItem(List> values) { - for (Map item : values) { + public FundersExternalSourcesModel fromExternalItem(List> values) { + for (Map item : values) { ExternalSourcesItemModel model = new ExternalSourcesItemModel(); - model.setRemoteId(item.get("pid")); - model.setUri(item.get("uri")); - model.setName(item.get("name")); - model.setDescription(item.get("description")); - model.setSource(item.get("source")); - model.setTag(item.get("tag")); - model.setKey(item.get("key")); + model.setRemoteId((String)item.get("pid")); + model.setUri((String)item.get("uri")); + model.setName((String)item.get("name")); + model.setDescription((String)item.get("description")); + model.setSource((String)item.get("source")); + model.setTag((String)item.get("tag")); + model.setKey((String)item.get("key")); this.add(model); } return this; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/GrantsExternalSourcesModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/GrantsExternalSourcesModel.java index f960310e1..0a9e442c2 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/GrantsExternalSourcesModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/GrantsExternalSourcesModel.java @@ -6,15 +6,15 @@ import java.util.Map; public class GrantsExternalSourcesModel extends ExternalListingItem { @Override - public GrantsExternalSourcesModel fromExternalItem(List> values) { - for (Map item : values) { + public GrantsExternalSourcesModel fromExternalItem(List> values) { + for (Map item : values) { ExternalSourcesItemModel model = new ExternalSourcesItemModel(); - model.setRemoteId(item.get("pid")); - model.setUri(item.get("uri")); - model.setName(item.get("name")); - model.setDescription(item.get("description")); - model.setTag(item.get("tag")); - model.setKey(item.get("key")); + model.setRemoteId((String)item.get("pid")); + model.setUri((String)item.get("uri")); + model.setName((String)item.get("name")); + model.setDescription((String)item.get("description")); + model.setTag((String)item.get("tag")); + model.setKey((String)item.get("key")); this.add(model); } return this; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/LicensesExternalSourcesModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/LicensesExternalSourcesModel.java index 0f8d648ac..18c3793f4 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/LicensesExternalSourcesModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/LicensesExternalSourcesModel.java @@ -6,12 +6,12 @@ import java.util.Map; public class LicensesExternalSourcesModel extends ExternalListingItem { @Override - public LicensesExternalSourcesModel fromExternalItem(List> values) { - for (Map item : values) { + public LicensesExternalSourcesModel fromExternalItem(List> values) { + for (Map item : values) { ExternalSourcesItemModel model = new ExternalSourcesItemModel(); - model.setId(item.get("id")); - model.setUri(item.get("uri")); - model.setName(item.get("name")); + model.setId((String)item.get("id")); + model.setUri((String)item.get("uri")); + model.setName((String)item.get("name")); this.add(model); } return this; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/OrganisationsExternalSourcesModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/OrganisationsExternalSourcesModel.java index 6a91d9b13..66a94b38f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/OrganisationsExternalSourcesModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/OrganisationsExternalSourcesModel.java @@ -8,14 +8,14 @@ import java.util.Map; @Component public class OrganisationsExternalSourcesModel extends ExternalListingItem { @Override - public OrganisationsExternalSourcesModel fromExternalItem(List> values) { - for (Map item : values) { + public OrganisationsExternalSourcesModel fromExternalItem(List> values) { + for (Map item : values) { ExternalSourcesItemModel model = new ExternalSourcesItemModel(); - model.setRemoteId(item.get("pid")); - model.setUri(item.get("uri")); - model.setName(item.get("name")); - model.setTag(item.get("tag")); - model.setKey(item.get("key")); + model.setRemoteId((String)item.get("pid")); + model.setUri((String)item.get("uri")); + model.setName((String)item.get("name")); + model.setTag((String)item.get("tag")); + model.setKey((String)item.get("key")); this.add(model); } return this; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ProjectsExternalSourcesModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ProjectsExternalSourcesModel.java index 3fc922d09..1d83d7939 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ProjectsExternalSourcesModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ProjectsExternalSourcesModel.java @@ -14,8 +14,8 @@ public class ProjectsExternalSourcesModel extends ExternalListingItem> values) { - for (Map item : values) { + public ProjectsExternalSourcesModel fromExternalItem(List> values) { + for (Map item : values) { ExternalSourcesItemModel model = new ExternalSourcesItemModel(); try { JsonNode node = mapper.readTree(mapper.writeValueAsBytes(item)); @@ -23,42 +23,42 @@ public class ProjectsExternalSourcesModel extends ExternalListingItem { @Override - public RegistriesExternalSourcesModel fromExternalItem(List> values) { - for (Map item : values) { + public RegistriesExternalSourcesModel fromExternalItem(List> values) { + for (Map item : values) { ExternalSourcesItemModel model = new ExternalSourcesItemModel(); - model.setId(item.get("pid")); - model.setUri(item.get("uri")); - model.setName(item.get("name")); - model.setTag(item.get("tag")); + model.setId((String)item.get("pid")); + model.setUri((String)item.get("uri")); + model.setName((String)item.get("name")); + model.setTag((String)item.get("tag")); this.add(model); } return this; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ResearchersExternalSourcesModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ResearchersExternalSourcesModel.java index 63a5529d4..c8563d82e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ResearchersExternalSourcesModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ResearchersExternalSourcesModel.java @@ -6,14 +6,14 @@ import java.util.Map; public class ResearchersExternalSourcesModel extends ExternalListingItem { @Override - public ResearchersExternalSourcesModel fromExternalItem(List> values) { - for (Map item : values) { + public ResearchersExternalSourcesModel fromExternalItem(List> values) { + for (Map item : values) { ExternalSourcesItemModel model = new ExternalSourcesItemModel(); - model.setRemoteId(item.get("pid")); - model.setUri(item.get("uri")); - model.setName(item.get("name")); - model.setTag(item.get("tag")); - model.setKey(item.get("key")); + model.setRemoteId((String)item.get("pid")); + model.setUri((String)item.get("uri")); + model.setName((String)item.get("name")); + model.setTag((String)item.get("tag")); + model.setKey((String)item.get("key")); this.add(model); } return this; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ServiceExternalSourcesModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ServiceExternalSourcesModel.java index 20ff5716d..316e10f6f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ServiceExternalSourcesModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ServiceExternalSourcesModel.java @@ -6,13 +6,13 @@ import java.util.Map; public class ServiceExternalSourcesModel extends ExternalListingItem { @Override - public ServiceExternalSourcesModel fromExternalItem(List> values) { - for (Map item : values) { + public ServiceExternalSourcesModel fromExternalItem(List> values) { + for (Map item : values) { ExternalSourcesItemModel model = new ExternalSourcesItemModel(); - model.setId(item.get("pid")); - model.setUri(item.get("label")); - model.setName(item.get("name")); - model.setTag(item.get("tag")); + model.setId((String)item.get("pid")); + model.setUri((String)item.get("label")); + model.setName((String)item.get("name")); + model.setTag((String)item.get("tag")); this.add(model); } return this; diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/TagExternalSourcesModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/TagExternalSourcesModel.java index 394d91523..5e6ce1c97 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/TagExternalSourcesModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/TagExternalSourcesModel.java @@ -9,13 +9,13 @@ import java.util.Map; public class TagExternalSourcesModel extends ExternalListingItem { @Override - public TagExternalSourcesModel fromExternalItem(List> values) { - for (Map item : values) { + public TagExternalSourcesModel fromExternalItem(List> values) { + for (Map item : values) { ExternalSourcesItemModel model = new ExternalSourcesItemModel(); - model.setId(item.get("pid")); - model.setUri(item.get("label")); - model.setName(item.get("name")); - model.setTag(item.get("tag")); + model.setId((String)item.get("pid")); + model.setUri((String)item.get("label")); + model.setName((String)item.get("name")); + model.setTag((String)item.get("tag")); this.add(model); } return this; diff --git a/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml b/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml index 498f492f1..198965e9f 100644 --- a/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml +++ b/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml @@ -897,6 +897,24 @@ $['meta']['pagination']['page','pages','count'] + + openaire + + 2 + External + https://services.openaire.eu/search/v2/api/datasets/?q={like}&page={page}&size={pageSize}&format=json + 0 + application/json; charset=utf-8 + + $['results'][*]['result']['metadata']['oaf:entity']['oaf:result'] + + 'pid' + 'title' + 'count' + + + $['meta']['page','size','total'] +