updated notify to social. Using social client 2.0
This commit is contained in:
parent
15ad448778
commit
a8b931d9ed
|
@ -88,6 +88,17 @@ and
|
||||||
* `LAST_INVOKED_STEP` (optional) can be: `SUBMIT-FOR-REVIEW`, `APPROVE-SUBMITTED`, `REJECT-DRAFT`, `UNPUBLISH`;
|
* `LAST_INVOKED_STEP` (optional) can be: `SUBMIT-FOR-REVIEW`, `APPROVE-SUBMITTED`, `REJECT-DRAFT`, `UNPUBLISH`;
|
||||||
* `NOTIFICATION_TYPE` (mandatory) can be: `USER_NOTIFICATION`, `VRE_POST`, `EMAIL`;
|
* `NOTIFICATION_TYPE` (mandatory) can be: `USER_NOTIFICATION`, `VRE_POST`, `EMAIL`;
|
||||||
|
|
||||||
|
***Notifications_Messages.properties*** managed/known placeholders:
|
||||||
|
|
||||||
|
* `${project_name}`
|
||||||
|
* `${project_id}`
|
||||||
|
* `${private_data_entry_link}`
|
||||||
|
* `${public_data_entry_link}`
|
||||||
|
* `${private_data_viewer_link}`
|
||||||
|
* `${public_data_viewer_link}`
|
||||||
|
* `${project_as_pdf_link}`
|
||||||
|
* `${user_caller}`
|
||||||
|
|
||||||
|
|
||||||
## Change log
|
## Change log
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.social-networking</groupId>
|
<groupId>org.gcube.social-networking</groupId>
|
||||||
<artifactId>social-service-client</artifactId>
|
<artifactId>social-service-client</artifactId>
|
||||||
<version>[1.0.0, 2.0.0-SNAPSHOT)</version>
|
<version>[2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.portlets.user</groupId>
|
<groupId>org.gcube.portlets.user</groupId>
|
||||||
|
|
|
@ -19,6 +19,7 @@ import org.gcube.application.cms.plugins.events.EventManager;
|
||||||
import org.gcube.application.cms.plugins.events.EventManager.Event;
|
import org.gcube.application.cms.plugins.events.EventManager.Event;
|
||||||
import org.gcube.application.cms.plugins.events.ItemObserved;
|
import org.gcube.application.cms.plugins.events.ItemObserved;
|
||||||
import org.gcube.application.cms.plugins.faults.InitializationException;
|
import org.gcube.application.cms.plugins.faults.InitializationException;
|
||||||
|
import org.gcube.application.cms.plugins.faults.InvalidProfileException;
|
||||||
import org.gcube.application.cms.plugins.faults.MaterializationException;
|
import org.gcube.application.cms.plugins.faults.MaterializationException;
|
||||||
import org.gcube.application.cms.plugins.faults.ShutDownException;
|
import org.gcube.application.cms.plugins.faults.ShutDownException;
|
||||||
import org.gcube.application.cms.plugins.implementations.AbstractPlugin;
|
import org.gcube.application.cms.plugins.implementations.AbstractPlugin;
|
||||||
|
@ -49,6 +50,9 @@ public class NotificationsPlugin extends AbstractPlugin implements EventListener
|
||||||
public static final String PLUGIN_ID = "Notifications-Plugin";
|
public static final String PLUGIN_ID = "Notifications-Plugin";
|
||||||
public static final String PLUGIN_TYPE = "EventListener";
|
public static final String PLUGIN_TYPE = "EventListener";
|
||||||
|
|
||||||
|
private static final String CONFIG_ENABLED = "enabled";
|
||||||
|
private static final String CONFIG_LINK_TO_NOTIFICATIONS_MESSAGES = "link_to_notifications_messages";
|
||||||
|
|
||||||
public static final PluginDescriptor DESCRIPTOR = new PluginDescriptor(PLUGIN_ID, PLUGIN_TYPE);
|
public static final PluginDescriptor DESCRIPTOR = new PluginDescriptor(PLUGIN_ID, PLUGIN_TYPE);
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
@ -316,8 +320,9 @@ public class NotificationsPlugin extends AbstractPlugin implements EventListener
|
||||||
notificationMapPerContext.setUcd(useCaseDescriptor);
|
notificationMapPerContext.setUcd(useCaseDescriptor);
|
||||||
notificationMapPerContext
|
notificationMapPerContext
|
||||||
.setListNotificationEventSubscribed(listNotificationEventsSubscribedPerUCD);
|
.setListNotificationEventSubscribed(listNotificationEventsSubscribedPerUCD);
|
||||||
String linkToMessages = profileConfiguration.get("link_to_notifications_messages", String.class);
|
String linkToMessages = profileConfiguration.get(CONFIG_LINK_TO_NOTIFICATIONS_MESSAGES,
|
||||||
Boolean enabledNotifications = profileConfiguration.get("enabled", Boolean.class);
|
String.class);
|
||||||
|
Boolean enabledNotifications = profileConfiguration.get(CONFIG_ENABLED, Boolean.class);
|
||||||
notificationMapPerContext.setLinkToNotificationsMessages(linkToMessages);
|
notificationMapPerContext.setLinkToNotificationsMessages(linkToMessages);
|
||||||
notificationMapPerContext.setEnabled(enabledNotifications);
|
notificationMapPerContext.setEnabled(enabledNotifications);
|
||||||
}
|
}
|
||||||
|
@ -326,7 +331,9 @@ public class NotificationsPlugin extends AbstractPlugin implements EventListener
|
||||||
log.info("Events subscribed read from config {} ", notificationMapPerContext);
|
log.info("Events subscribed read from config {} ", notificationMapPerContext);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
} catch (InvalidProfileException e) {
|
||||||
|
log.warn("Unable to read configuration for {} in the UCD {}" + NotificationsPlugin.PLUGIN_ID,
|
||||||
|
useCaseDescriptor.getId());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("Unable to read configuration for " + NotificationsPlugin.PLUGIN_ID, e);
|
log.error("Unable to read configuration for " + NotificationsPlugin.PLUGIN_ID, e);
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
|
|
|
@ -65,7 +65,7 @@ public class NotifyToSocial {
|
||||||
body += "\n" + itemObserved.getOptionalMessage();
|
body += "\n" + itemObserved.getOptionalMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
log.info("Going to sent notification to users: {}", recipientUsers);
|
log.info("Going to send notification to users: {}", recipientUsers);
|
||||||
log.info("subject: {}", subject);
|
log.info("subject: {}", subject);
|
||||||
log.info("body: {}", body);
|
log.info("body: {}", body);
|
||||||
userNotify(subject, body, catalogueEventType);
|
userNotify(subject, body, catalogueEventType);
|
||||||
|
@ -104,7 +104,6 @@ public class NotifyToSocial {
|
||||||
try {
|
try {
|
||||||
final Secret geoportalSecret = GeoportalServiceAccount.getGeoportalSecret();
|
final Secret geoportalSecret = GeoportalServiceAccount.getGeoportalSecret();
|
||||||
secretManager.startSession(geoportalSecret);
|
secretManager.startSession(geoportalSecret);
|
||||||
// secretManager.startSession(geoportalSecret);
|
|
||||||
log.debug("{} is going to send vrePost {}", SecretManagerProvider.instance.get().getUser().getUsername(),
|
log.debug("{} is going to send vrePost {}", SecretManagerProvider.instance.get().getUser().getUsername(),
|
||||||
toWrite);
|
toWrite);
|
||||||
|
|
||||||
|
@ -112,8 +111,8 @@ public class NotifyToSocial {
|
||||||
// log.debug("body with tag: {}", bodyWithTag);
|
// log.debug("body with tag: {}", bodyWithTag);
|
||||||
// toWrite.setText(bodyWithTag);
|
// toWrite.setText(bodyWithTag);
|
||||||
toWrite.setEnablenotification(true);
|
toWrite.setEnablenotification(true);
|
||||||
|
|
||||||
log.info("Going to write user post: {}", toWrite);
|
log.info("Calling social - going to write user post: {}", toWrite);
|
||||||
Post thePost = socialClients.writeUserPost(toWrite);
|
Post thePost = socialClients.writeUserPost(toWrite);
|
||||||
log.info("{} post created: {} ", notify.getType(), thePost);
|
log.info("{} post created: {} ", notify.getType(), thePost);
|
||||||
|
|
||||||
|
@ -137,9 +136,9 @@ public class NotifyToSocial {
|
||||||
try {
|
try {
|
||||||
Secret secret = GeoportalServiceAccount.getGeoportalSecret();
|
Secret secret = GeoportalServiceAccount.getGeoportalSecret();
|
||||||
secretManager.startSession(secret);
|
secretManager.startSession(secret);
|
||||||
log.debug("{} is going to send the following notification {}",
|
|
||||||
SecretManagerProvider.instance.get().getUser().getUsername(), catalogueEvent);
|
|
||||||
NotificationClient nc = socialClients.getNotificationClient();
|
NotificationClient nc = socialClients.getNotificationClient();
|
||||||
|
log.info("Calling social - {} is going to send the notification {}",
|
||||||
|
SecretManagerProvider.instance.get().getUser().getUsername(), catalogueEvent);
|
||||||
nc.sendCatalogueEvent(catalogueEvent);
|
nc.sendCatalogueEvent(catalogueEvent);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("Error while sending notification", e);
|
log.error("Error while sending notification", e);
|
||||||
|
|
|
@ -2,6 +2,16 @@ package org.gcube.application.cms.notifications.substitutor;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class SubstitutorPlaceholdersMap.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
* Apr 15, 2024
|
||||||
|
*
|
||||||
|
* This class contains the placeholder known
|
||||||
|
*/
|
||||||
public class SubstitutorPlaceholdersMap extends HashMap<String, String> {
|
public class SubstitutorPlaceholdersMap extends HashMap<String, String> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -21,37 +31,89 @@ public class SubstitutorPlaceholdersMap extends HashMap<String, String> {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new substitutor placeholders map.
|
||||||
|
*/
|
||||||
public SubstitutorPlaceholdersMap() {
|
public SubstitutorPlaceholdersMap() {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Put user caller.
|
||||||
|
*
|
||||||
|
* @param username the username
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
public String putUserCaller(String username) {
|
public String putUserCaller(String username) {
|
||||||
return put(USER_CALLER, username);
|
return put(USER_CALLER, username);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Put item creator.
|
||||||
|
*
|
||||||
|
* @param username the username
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
public String putItemCreator(String username) {
|
public String putItemCreator(String username) {
|
||||||
return put(ITEM_CREATOR, username);
|
return put(ITEM_CREATOR, username);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Put project name.
|
||||||
|
*
|
||||||
|
* @param projectName the project name
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
public String putProjectName(String projectName) {
|
public String putProjectName(String projectName) {
|
||||||
return put(PROJECT_NAME, projectName);
|
return put(PROJECT_NAME, projectName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Put project id.
|
||||||
|
*
|
||||||
|
* @param projectId the project id
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
public String putProjectId(String projectId) {
|
public String putProjectId(String projectId) {
|
||||||
return put(PROJECT_ID, projectId);
|
return put(PROJECT_ID, projectId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Put private data entry link.
|
||||||
|
*
|
||||||
|
* @param link the link
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
public String putPrivateDataEntryLink(String link) {
|
public String putPrivateDataEntryLink(String link) {
|
||||||
return put(PRIVATE_DATA_ENTRY_LINK, link);
|
return put(PRIVATE_DATA_ENTRY_LINK, link);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Put public data entry link.
|
||||||
|
*
|
||||||
|
* @param link the link
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
public String putPublicDataEntryLink(String link) {
|
public String putPublicDataEntryLink(String link) {
|
||||||
return put(PUBLIC_DATA_ENTRY_LINK, link);
|
return put(PUBLIC_DATA_ENTRY_LINK, link);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Put private data viewer link.
|
||||||
|
*
|
||||||
|
* @param link the link
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
public String putPrivateDataViewerLink(String link) {
|
public String putPrivateDataViewerLink(String link) {
|
||||||
return put(PRIVATE_DATA_VIEWER_LINK, link);
|
return put(PRIVATE_DATA_VIEWER_LINK, link);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Put public data viewer link.
|
||||||
|
*
|
||||||
|
* @param link the link
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
public String putPublicDataViewerLink(String link) {
|
public String putPublicDataViewerLink(String link) {
|
||||||
return put(PUBLIC_DATA_VIEWER_LINK, link);
|
return put(PUBLIC_DATA_VIEWER_LINK, link);
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,7 +114,7 @@ public class CatalogueBindingPluginTest extends BasicPluginTest {
|
||||||
|
|
||||||
//Setting creator
|
//Setting creator
|
||||||
User creator = new User();
|
User creator = new User();
|
||||||
creator.setUsername("gianluca.vannini");
|
creator.setUsername("giancarlo.panichi");
|
||||||
item.getProject().getInfo().getCreationInfo().setUser(creator);
|
item.getProject().getInfo().getCreationInfo().setUser(creator);
|
||||||
|
|
||||||
EventManager.Event event = Event.LIFECYCLE_STEP_PERFORMED;
|
EventManager.Event event = Event.LIFECYCLE_STEP_PERFORMED;
|
||||||
|
|
Loading…
Reference in New Issue