From eb27d678454b69fcfe4675c8fe6fbc5ec782142c Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Mon, 21 Jun 2021 17:09:49 +0200 Subject: [PATCH] Adding feature #21345 --- CHANGELOG.md | 4 ++-- .../gcat/persistence/ckan/CKANInstance.java | 2 +- .../gcat/persistence/ckan/CKANPackage.java | 11 +++++++++++ .../org/gcube/gcat/social/SocialPost.java | 19 +++++++++++++++++++ 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 46e32ba..3af71f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,9 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [v2.1.0-SNAPSHOT] -- +- Added query parameter social_post_notification to override default VRE behaviour [#21345] - Users are created/references in the form and not vice-versa [#21479] - +- Starting to add support for moderation [#21342] ## [v2.0.0] diff --git a/src/main/java/org/gcube/gcat/persistence/ckan/CKANInstance.java b/src/main/java/org/gcube/gcat/persistence/ckan/CKANInstance.java index 23e8013..2a9f1b5 100644 --- a/src/main/java/org/gcube/gcat/persistence/ckan/CKANInstance.java +++ b/src/main/java/org/gcube/gcat/persistence/ckan/CKANInstance.java @@ -52,7 +52,7 @@ public class CKANInstance { protected String ckanURL; protected String sysAdminToken; protected boolean socialPostEnabled; - protected boolean notificationToUsersEnabled; + protected Boolean notificationToUsersEnabled; protected String uriResolverURL; protected boolean moderationEnabled; diff --git a/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java b/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java index a952126..172e908 100644 --- a/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java +++ b/src/main/java/org/gcube/gcat/persistence/ckan/CKANPackage.java @@ -593,6 +593,17 @@ public class CKANPackage extends CKAN { socialPost.setItemURL(catalogueItemURL); socialPost.setTags(arrayNode); socialPost.setItemTitle(title); + + Boolean notification = null; + try { + MultivaluedMap queryParameters = uriInfo.getQueryParameters(); + if(queryParameters.containsKey(GCatConstants.SOCIAL_POST_NOTIFICATION_QUERY_PARAMETER)) { + notification = Boolean.parseBoolean(queryParameters.getFirst(GCatConstants.SOCIAL_POST_NOTIFICATION_QUERY_PARAMETER)); + } + } catch(Exception e) { + + } + socialPost.setNotification(notification); socialPost.start(); } else { logger.info("The request explicitly disabled the Social Post."); diff --git a/src/main/java/org/gcube/gcat/social/SocialPost.java b/src/main/java/org/gcube/gcat/social/SocialPost.java index 599d018..75c8ed2 100644 --- a/src/main/java/org/gcube/gcat/social/SocialPost.java +++ b/src/main/java/org/gcube/gcat/social/SocialPost.java @@ -49,6 +49,7 @@ public class SocialPost extends Thread { protected String itemURL; protected String itemTitle; protected List tags; + protected Boolean notification; public SocialPost() throws Exception { super(); @@ -103,6 +104,14 @@ public class SocialPost extends Thread { } } + public Boolean isNotification() { + return notification; + } + + public void setNotification(Boolean notification) { + this.notification = notification; + } + @Override public void run() { @@ -117,6 +126,15 @@ public class SocialPost extends Thread { logger.info("Going to send Social Post about the Item {} available at {}", itemID, itemURL); boolean notifyUsers = instance.isNotificationToUsersEnabled(); + + if(notification != null) { + if(notifyUsers) { + notifyUsers = notifyUsers && notification; + }else { + notifyUsers = notification; + } + } + // write notification post sendSocialPost(notifyUsers); @@ -182,4 +200,5 @@ public class SocialPost extends Thread { } } + }