diff --git a/src/main/java/org/gcube/portal/notifications/thread/PostNotificationsThread.java b/src/main/java/org/gcube/portal/notifications/thread/PostNotificationsThread.java new file mode 100644 index 0000000..066ba6e --- /dev/null +++ b/src/main/java/org/gcube/portal/notifications/thread/PostNotificationsThread.java @@ -0,0 +1,48 @@ +package org.gcube.portal.notifications.thread; + +import java.util.List; + +import org.gcube.applicationsupportlayer.social.NotificationsManager; +import org.gcube.vomanagement.usermanagement.UserManager; +import org.gcube.vomanagement.usermanagement.impl.liferay.LiferayUserManager; +import org.gcube.vomanagement.usermanagement.model.UserModel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * + * @author Massimiliano Assante ISTI-CNR + * + */ +public class PostNotificationsThread implements Runnable { + private static Logger _log = LoggerFactory.getLogger(PostNotificationsThread.class); + + private String postText; + private String postId; + private String groupId; + private List hashtags; + private NotificationsManager nm; + + public PostNotificationsThread(String postId, String postText, String groupId, NotificationsManager nm, List hashtags) { + super(); + this.postId = postId; + this.postText = postText; + this.groupId = groupId; + this.hashtags = hashtags; + this.nm = nm; + } + + @Override + public void run() { + UserManager um = new LiferayUserManager(); + String[] hashtagsToPass = hashtags.toArray(new String[hashtags.size()]); + try { + for (UserModel user : um.listUsersByGroup(groupId)) { + boolean result = nm.notifyPost(user.getScreenName(), postId, postText, hashtagsToPass); + _log.trace("Sending Notification for post alert to: " + user.getScreenName() + " result?"+ result); + } + } catch (Exception e) { + e.printStackTrace(); + } + } +}