diff --git a/pom.xml b/pom.xml
index d834f94..428b204 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
org.gcube.social-networking
social-service-client
- 1.0.0
+ 1.1.0-SNAPSHOT
social-networking-service-client
jar
The social networking web service client library
diff --git a/src/main/java/org/gcube/social_networking/social_networking_client_library/NotificationClient.java b/src/main/java/org/gcube/social_networking/social_networking_client_library/NotificationClient.java
index 0ba1cec..fc52d2f 100644
--- a/src/main/java/org/gcube/social_networking/social_networking_client_library/NotificationClient.java
+++ b/src/main/java/org/gcube/social_networking/social_networking_client_library/NotificationClient.java
@@ -9,6 +9,10 @@ import org.apache.commons.lang.Validate;
import org.gcube.portal.databook.shared.Notification;
import org.gcube.social_networking.social_networking_client_library.utils.HttpClient;
import org.gcube.social_networking.socialnetworking.model.beans.JobNotificationBean;
+import org.gcube.social_networking.socialnetworking.model.beans.catalogue.CatalogueEvent;
+import org.gcube.social_networking.socialnetworking.model.beans.catalogue.CatalogueEventType;
+import org.gcube.social_networking.socialnetworking.model.beans.workspace.WorkspaceEvent;
+import org.gcube.social_networking.socialnetworking.model.beans.workspace.WorkspaceEventType;
import org.gcube.social_networking.socialnetworking.model.output.ResponseBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -59,5 +63,31 @@ public class NotificationClient extends BaseClient{
HttpClient.post(new GenericType>(){}, request, notification);
}
+
+ /**
+ * Notify a catalogue event, types available see {@link WorkspaceEventType}
+ * @param event an instance of {@link WorkspaceEvent}
+ */
+ public void sendWorkspaceEvent(WorkspaceEvent event) {
+ Validate.isTrue(event != null, "WorkspaceEvent cannot be null");
+ logger.debug("Request for sending workdspace notifications");
+ String thisMethodSignature = "workspace";
+ String request = getServiceEndpoint() + thisMethodSignature;
+ HttpClient.post(new GenericType>(){}, request, event);
+
+ }
+
+ /**
+ * Notify a catalogue event, types availeble see {@link CatalogueEventType}
+ * @param event an instance of {@link CatalogueEvent}
+ */
+ public void senCatalogueEvent(CatalogueEvent event) {
+ Validate.isTrue(event != null, "CatalogueEvent cannot be null");
+ logger.debug("Request for sending CatalogueEvent notifications");
+ String thisMethodSignature = "catalogue";
+ String request = getServiceEndpoint() + thisMethodSignature;
+ HttpClient.post(new GenericType>(){}, request, event);
+
+ }
}
diff --git a/src/test/java/org/gcube/portal/social_networking_client_library/TestClientServices.java b/src/test/java/org/gcube/portal/social_networking_client_library/TestClientServices.java
index 3571582..44cd548 100644
--- a/src/test/java/org/gcube/portal/social_networking_client_library/TestClientServices.java
+++ b/src/test/java/org/gcube/portal/social_networking_client_library/TestClientServices.java
@@ -1,5 +1,6 @@
package org.gcube.portal.social_networking_client_library;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -11,7 +12,6 @@ import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.portal.databook.shared.EnhancedFeed;
import org.gcube.portal.databook.shared.Feed;
-import org.gcube.portal.databook.shared.JobStatusType;
import org.gcube.portal.databook.shared.Notification;
import org.gcube.social_networking.social_networking_client_library.FullTextSearchClient;
import org.gcube.social_networking.social_networking_client_library.HashTagClient;
@@ -24,6 +24,7 @@ import org.gcube.social_networking.social_networking_client_library.UserClient;
import org.gcube.social_networking.social_networking_client_library.VREClient;
import org.gcube.social_networking.socialnetworking.model.beans.ApplicationId;
import org.gcube.social_networking.socialnetworking.model.beans.JobNotificationBean;
+import org.gcube.social_networking.socialnetworking.model.beans.JobStatusModelType;
import org.gcube.social_networking.socialnetworking.model.beans.Message;
import org.gcube.social_networking.socialnetworking.model.beans.MessageInbox;
import org.gcube.social_networking.socialnetworking.model.beans.MyVRE;
@@ -31,6 +32,14 @@ import org.gcube.social_networking.socialnetworking.model.beans.PostInputBean;
import org.gcube.social_networking.socialnetworking.model.beans.Recipient;
import org.gcube.social_networking.socialnetworking.model.beans.UserProfile;
import org.gcube.social_networking.socialnetworking.model.beans.UserProfileExtended;
+import org.gcube.social_networking.socialnetworking.model.beans.catalogue.CatalogueEvent;
+import org.gcube.social_networking.socialnetworking.model.beans.catalogue.CatalogueEventType;
+import org.gcube.social_networking.socialnetworking.model.beans.workspace.AddedItemEvent;
+import org.gcube.social_networking.socialnetworking.model.beans.workspace.DeletedItemEvent;
+import org.gcube.social_networking.socialnetworking.model.beans.workspace.FileItemBean;
+import org.gcube.social_networking.socialnetworking.model.beans.workspace.FolderBean;
+import org.gcube.social_networking.socialnetworking.model.beans.workspace.UpdatedItemEvent;
+import org.gcube.social_networking.socialnetworking.model.beans.workspace.WorkspaceEvent;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
@@ -48,6 +57,44 @@ public class TestClientServices {
//SecurityTokenProvider.instance.set("");
}
+
+ @Test
+ public void testCatalogueEvents() throws Exception {
+ NotificationClient nc = new NotificationClient();
+ String[] idstoNotify = {"andrea.rossi", "mister.pink"};
+ CatalogueEvent event =
+ new CatalogueEvent(
+ CatalogueEventType.ITEM_SUBMITTED,
+ idstoNotify,
+ "Wyscout soccer-logs dataset",
+ "submitted \"Wyscout soccer-logs dataset\", a dataset of soccer-logs for all the main soccer leagues in the world, from season 2014/2015 to the current one. ",
+ new URL("http://data.d4science.org/ctlg/ResourceCatalogue/wyscout_soccer-logs_dataset"));
+ nc.senCatalogueEvent(event);
+ }
+
+ @Test
+ public void testWorkspaceItemEvents() throws Exception {
+ NotificationClient nc = new NotificationClient();
+ boolean vreFolder = false;
+ FolderBean folder = new FolderBean("217cbe15-6408-41e5-9fda-628f56b8e803", "folderName", "folderTitle","displayName",
+ "/Workspace/_shared attachments", "90b8da48-d363-441a-a0a2-6f614ae747b9", vreFolder);
+ FileItemBean fileItem = new FileItemBean("90b8da48-d363-441a-f0a2-4f413ae747d7", "updated item.pdf", "updated item.pdf",
+ "/Workspace/_shared attachments/test updated item from client", folder);
+
+ String[] idstoNotify = {"andrea.rossi", "mister.pink"};
+ WorkspaceEvent event = new UpdatedItemEvent(idstoNotify, fileItem);
+ nc.sendWorkspaceEvent(event);
+ event = new AddedItemEvent(idstoNotify, fileItem);
+ nc.sendWorkspaceEvent(event);
+ event = new DeletedItemEvent(idstoNotify, "theDeletedFilenName.pdf", folder);
+ nc.sendWorkspaceEvent(event);
+
+ String[] contextIdstoNotify = {"/gcube/devsec/devVRE"};
+ event = new UpdatedItemEvent(contextIdstoNotify, true, fileItem);
+ nc.sendWorkspaceEvent(event);
+ }
+
+
@Test
public void testSearch() throws Exception {
FullTextSearchClient search = new FullTextSearchClient();
@@ -116,19 +163,19 @@ public class TestClientServices {
}
}
-// @Test
-// public void sendJobNotification() throws Exception {
-// NotificationClient notificationsClient = new NotificationClient();
-// JobNotificationBean notification = new JobNotificationBean(
-// "luca.frosini",
-// UUID.randomUUID().toString(),
-// "SmartExecutor Social Indexer",
-// "SmartExecutor",
-// JobStatusType.SUCCEEDED,
-// "all ok");
-// notificationsClient.sendJobNotification(notification);
-// logger.debug("Sent job notification ");
-// }
+ @Test
+ public void sendJobNotification() throws Exception {
+ NotificationClient notificationsClient = new NotificationClient();
+ JobNotificationBean notification = new JobNotificationBean(
+ "luca.frosini",
+ UUID.randomUUID().toString(),
+ "SmartExecutor Social Indexer",
+ "SmartExecutor",
+ JobStatusModelType.SUCCEEDED,
+ "all ok");
+ notificationsClient.sendJobNotification(notification);
+ logger.debug("Sent job notification ");
+ }
@Test
public void getProfile() throws Exception {