From c5b23207b23781e2a93dc5c0de2663a64b9bf2f6 Mon Sep 17 00:00:00 2001 From: "michele.artini" Date: Mon, 9 Oct 2023 12:12:07 +0200 Subject: [PATCH] added field 'enabled' to community_datasources, fixed a migrated field --- .../importer/CommunityImporterService.java | 5 +++-- .../openaire/community/model/DbDatasource.java | 11 +++++++++++ .../community/utils/CommunityMappingUtils.java | 2 ++ .../src/main/resources/sql/community-schema.sql | 1 + .../model/community/CommunityContentprovider.java | 13 +++++++++++++ 5 files changed, 30 insertions(+), 2 deletions(-) diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterService.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterService.java index 5df6224d..7817b044 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterService.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterService.java @@ -11,6 +11,7 @@ import java.util.stream.Stream; import javax.transaction.Transactional; +import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -258,8 +259,7 @@ public class CommunityImporterService { details.setStatus(CommunityStatus.hidden); } - details.setName(asCsv(CSUMMARY_NAME, c.getParams())); - details.setName(c.getLabel()); + details.setName(StringUtils.firstNonBlank(asCsv(CSUMMARY_NAME, c.getParams()), c.getLabel())); details.setZenodoCommunity(asCsv(CSUMMARY_ZENODOC, c.getParams())); details.setSubjects(splitValues(asValues(CPROFILE_SUBJECT, c.getParams()), CSV_DELIMITER)); details.setFos(splitValues(asValues(CPROFILE_FOS, c.getParams()), CSV_DELIMITER)); @@ -298,6 +298,7 @@ public class CommunityImporterService { d.setOpenaireId(firstValue(OPENAIRE_ID, p)); d.setName(firstValue(CCONTENTPROVIDER_NAME, p)); d.setOfficialname(firstValue(CCONTENTPROVIDER_OFFICIALNAME, p)); + d.setEnabled(BooleanUtils.toBoolean(firstValue(CCONTENTPROVIDER_ENABLED, p))); d.setSelectioncriteria(SelectionCriteria.fromJson(firstValue(CCONTENTPROVIDER_SELCRITERIA, p))); return d; } diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/model/DbDatasource.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/model/DbDatasource.java index 3eaa6179..685b141c 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/model/DbDatasource.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/model/DbDatasource.java @@ -33,6 +33,9 @@ public class DbDatasource implements Serializable { @Column(name = "ds_officialname") private String dsOfficialName; + @Column(name = "enabled") + private Boolean enabled; + @Type(type = "jsonb") @Column(name = "constraints") private SelectionCriteria constraints; @@ -79,6 +82,14 @@ public class DbDatasource implements Serializable { this.dsOfficialName = dsOfficialName; } + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(final Boolean enabled) { + this.enabled = enabled; + } + public SelectionCriteria getConstraints() { return constraints; } diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/utils/CommunityMappingUtils.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/utils/CommunityMappingUtils.java index 376d17cc..2d8c7e72 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/utils/CommunityMappingUtils.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/utils/CommunityMappingUtils.java @@ -176,6 +176,7 @@ public class CommunityMappingUtils { ccp.setName(dbEntry.getDsName()); ccp.setOfficialname(dbEntry.getDsOfficialName()); ccp.setSelectioncriteria(dbEntry.getConstraints()); + ccp.setEnabled(dbEntry.getEnabled() != null ? dbEntry.getEnabled() : true); return ccp; } @@ -186,6 +187,7 @@ public class CommunityMappingUtils { ds.setDsName(provider.getName()); ds.setDsOfficialName(provider.getOfficialname()); ds.setConstraints(provider.getSelectioncriteria()); + ds.setEnabled(provider.isEnabled()); return ds; } diff --git a/apps/dnet-exporter-api/src/main/resources/sql/community-schema.sql b/apps/dnet-exporter-api/src/main/resources/sql/community-schema.sql index 78547410..d109fe1e 100644 --- a/apps/dnet-exporter-api/src/main/resources/sql/community-schema.sql +++ b/apps/dnet-exporter-api/src/main/resources/sql/community-schema.sql @@ -42,6 +42,7 @@ CREATE TABLE community_datasources ( ds_id text NOT NULL, ds_name text NOT NULL, ds_officialname text NOT NULL, + enabled boolean NOT NULL DEFAULT true; constraints jsonb, PRIMARY KEY (community, ds_id) ); diff --git a/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/CommunityContentprovider.java b/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/CommunityContentprovider.java index a7297a42..c8cba59c 100644 --- a/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/CommunityContentprovider.java +++ b/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/CommunityContentprovider.java @@ -26,6 +26,10 @@ public class CommunityContentprovider { @Schema(description = "content provider official name", required = true) private String officialname; + // @NotNull + @Schema(description = "content provider enabled for content inclusion", required = false) + private boolean enabled; + // @NotNull @Schema(description = "content provider selection criteria", required = false) private SelectionCriteria selectioncriteria; @@ -62,6 +66,14 @@ public class CommunityContentprovider { this.officialname = officialname; } + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(final boolean enabled) { + this.enabled = enabled; + } + public SelectionCriteria getSelectioncriteria() { return this.selectioncriteria; } @@ -101,4 +113,5 @@ public class CommunityContentprovider { .append("\n]"); return builder.toString(); } + }