From 9281864a701c273a51a339a1720e35336f86cf1f Mon Sep 17 00:00:00 2001 From: gkolokythas Date: Tue, 27 Aug 2019 12:52:21 +0300 Subject: [PATCH] Adds "source" property to Grants fetched from external sources. --- .../logic/builders/model/models/GrantBuilder.java | 8 ++++++++ .../java/eu/eudat/logic/managers/GrantManager.java | 1 + .../logic/proxy/config/DataFieldsUrlConfiguration.java | 10 ++++++++++ .../eu/eudat/logic/proxy/fetching/RemoteFetcher.java | 4 +++- .../models/data/external/ExternalSourcesItemModel.java | 9 +++++++++ .../data/external/GrantsExternalSourcesModel.java | 1 + .../main/java/eu/eudat/models/data/grant/Grant.java | 8 ++++++++ .../web/src/main/resources/GrantConfiguration.xml | 1 + 8 files changed, 41 insertions(+), 1 deletion(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/GrantBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/GrantBuilder.java index 6e7fce5a1..12f87f4d9 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/GrantBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/builders/model/models/GrantBuilder.java @@ -42,6 +42,8 @@ public class GrantBuilder extends Builder { private String description; + private String source; + public GrantBuilder id(UUID id) { this.id = id; return this; @@ -112,6 +114,11 @@ public class GrantBuilder extends Builder { return this; } + public GrantBuilder source(String source) { + this.source = source; + return this; + } + @Override public Grant build() { Grant grant = new Grant(); @@ -129,6 +136,7 @@ public class GrantBuilder extends Builder { grant.setReference(reference); grant.setCreationUser(creationUser); grant.setStartDate(startDate); + grant.setSource(source); return grant; } } 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 ed20f5aab..383ecd67d 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 @@ -127,6 +127,7 @@ public class GrantManager { .reference(externalListingItem.getRemoteId()).label(externalListingItem.getName()) .description(externalListingItem.getDescription()).uri(externalListingItem.getUri()) .abbreviation(externalListingItem.getAbbreviation()).status(eu.eudat.data.entities.Grant.Status.fromInteger(0)) + .source(externalListingItem.getSource()) .build(); grants.add(grant); diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/DataFieldsUrlConfiguration.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/DataFieldsUrlConfiguration.java index 686b39557..829e75b88 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/DataFieldsUrlConfiguration.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/DataFieldsUrlConfiguration.java @@ -10,6 +10,7 @@ public class DataFieldsUrlConfiguration { private String name; private String uri; private String description; + private String source; public String getId() { return id; @@ -47,4 +48,13 @@ public class DataFieldsUrlConfiguration { public void setDescription(String description) { this.description = description; } + + public String getSource() { + return source; + } + + @XmlElement(name = "source") + public void setSource(String source) { + this.source = source; + } } 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 1e057a4ac..47110fb0e 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 @@ -192,7 +192,8 @@ public class RemoteFetcher { DocumentContext jsonContext = JsonPath.parse(con.getInputStream()); Results results = new Results(jsonContext.read(jsonDataPath.getPath() + "[" + jsonDataPath.getFieldsUrlConfiguration().getName() + "," + jsonDataPath.getFieldsUrlConfiguration().getDescription() - + "," + jsonDataPath.getFieldsUrlConfiguration().getUri() + "," + jsonDataPath.getFieldsUrlConfiguration().getId() + "]"), + + "," + jsonDataPath.getFieldsUrlConfiguration().getUri() + "," + jsonDataPath.getFieldsUrlConfiguration().getId() + + "," + jsonDataPath.getFieldsUrlConfiguration().getSource() + "]"), jsonContext.read(jsonPaginationPath)); results.results = results.results.stream().map(e -> e.entrySet().stream().collect(Collectors.toMap(x -> this.transformKey(jsonDataPath,x.getKey()), Map.Entry::getValue))) .collect(Collectors.toList()); @@ -219,6 +220,7 @@ public class RemoteFetcher { if (key.equals(dataUrlConfiguration.getFieldsUrlConfiguration().getDescription().replace("'",""))) return "description"; if (key.equals(dataUrlConfiguration.getFieldsUrlConfiguration().getUri().replace("'",""))) return "uri"; if (key.equals(dataUrlConfiguration.getFieldsUrlConfiguration().getName().replace("'",""))) return "name"; + if (key.equals(dataUrlConfiguration.getFieldsUrlConfiguration().getSource().replace("'",""))) return "source"; return null; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalSourcesItemModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalSourcesItemModel.java index 0c6f984bf..521563627 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalSourcesItemModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/external/ExternalSourcesItemModel.java @@ -9,6 +9,7 @@ public class ExternalSourcesItemModel { private String remoteId; private String abbreviation; private String tag; + private String source; public String getId() { return id; @@ -65,4 +66,12 @@ public class ExternalSourcesItemModel { public void setTag(String tag) { this.tag = tag; } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } } 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 832bda65a..9b949d419 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 @@ -13,6 +13,7 @@ public class GrantsExternalSourcesModel extends ExternalListingItem { private String description; private List files; private UUID funderId; + private String source; public UUID getId() { return id; @@ -151,6 +152,13 @@ public class Grant implements DataModel { this.funderId = funderId; } + public String getSource() { + return source; + } + public void setSource(String source) { + this.source = source; + } + @Override public Grant fromDataModel(eu.eudat.data.entities.Grant entity) { this.id = entity.getId(); diff --git a/dmp-backend/web/src/main/resources/GrantConfiguration.xml b/dmp-backend/web/src/main/resources/GrantConfiguration.xml index f52b78ba1..3657195f7 100644 --- a/dmp-backend/web/src/main/resources/GrantConfiguration.xml +++ b/dmp-backend/web/src/main/resources/GrantConfiguration.xml @@ -51,6 +51,7 @@ 'name' 'uri' 'description' + 'source' $['meta']['pagination']['page','pages','count']