public class SubscriptionsPlugin extends PluginActivator implements SubscriptionService, de.deepamehta.plugins.websockets.event.WebsocketTextMessageListener
Modifier and Type | Field and Description |
---|---|
private AccessControlService |
aclService |
private static String |
DEEPAMEHTA_TAG_TYPE |
private static String |
DEFAULT_ROLE_TYPE |
private static Logger |
log |
private static String |
NOTIFICATION_BODY_TYPE |
private static String |
NOTIFICATION_INVOLVED_ITEM_ID_TYPE |
private static String |
NOTIFICATION_RECIPIENT_EDGE_TYPE |
private static String |
NOTIFICATION_SEEN_TYPE |
private static String |
NOTIFICATION_SUB_ITEM_ID_TYPE |
private static String |
NOTIFICATION_TITLE_TYPE |
private static String |
NOTIFICATION_TYPE |
private static String |
SUBSCRIPTION_EDGE_TYPE |
private static String |
USER_ACCOUNT_TYPE |
private de.deepamehta.plugins.websockets.service.WebSocketsService |
webSocketsService |
bundle, dms
Constructor and Description |
---|
SubscriptionsPlugin() |
Modifier and Type | Method and Description |
---|---|
private boolean |
associationExists(String edge_type,
long itemId,
long accountId) |
void |
createNotifications(String title,
String message,
long actionAccountId,
DeepaMehtaObject item)
Creates new notifications for all users with a direct or indirect (tags) subscription to the given item.
|
private void |
createNotificationTopics(String title,
String text,
long accountId,
DeepaMehtaObject involvedItem) |
private void |
createNotificationTopics(String title,
String text,
long accountId,
DeepaMehtaObject involvedItem,
DeepaMehtaObject subscribedItem) |
ResultList<RelatedTopic> |
getAllNotifications()
Gets all notifications for the logged-in user.
|
ResultList<RelatedTopic> |
getAllNotificationsForUser() |
ArrayList<RelatedTopic> |
getAllUnseenNotifications()
Gets all unread notifications for the logged-in user.
|
ArrayList<RelatedTopic> |
getAllUnseenNotificationsForUser() |
ResultList<RelatedTopic> |
getSubscriptions()
Gets all subscribed topics for the logged-in user.
|
private Topic |
getUserAccountTopic(String username) |
boolean |
setNotificationSeen(long newsId) |
void |
subscribe(long accountId,
long itemId)
Create a subscription edge for useraccount to item.
|
javax.ws.rs.core.Response |
subscribeUser(long itemId) |
void |
unsubscribe(long accountId,
long itemId)
Remove subscription (edge) for given user account and item.
|
javax.ws.rs.core.Response |
unsubscribeUser(long itemId) |
void |
websocketTextMessage(String message) |
getBundleContext, getPluginName, getStaticResource, getUri, init, postInstall, publishDirectory, serviceArrived, serviceGone, setCoreService, shutdown, start, stop, toString
private static final String NOTIFICATION_TYPE
private static final String NOTIFICATION_TITLE_TYPE
private static final String NOTIFICATION_BODY_TYPE
private static final String NOTIFICATION_INVOLVED_ITEM_ID_TYPE
private static final String NOTIFICATION_SUB_ITEM_ID_TYPE
private static final String NOTIFICATION_RECIPIENT_EDGE_TYPE
private static final String SUBSCRIPTION_EDGE_TYPE
private static final String NOTIFICATION_SEEN_TYPE
private static final String USER_ACCOUNT_TYPE
private static final String DEEPAMEHTA_TAG_TYPE
private static final String DEFAULT_ROLE_TYPE
private AccessControlService aclService
private de.deepamehta.plugins.websockets.service.WebSocketsService webSocketsService
public SubscriptionsPlugin()
public javax.ws.rs.core.Response subscribeUser(long itemId)
public javax.ws.rs.core.Response unsubscribeUser(long itemId)
public ResultList<RelatedTopic> getSubscriptions()
SubscriptionService
getSubscriptions
in interface SubscriptionService
public boolean setNotificationSeen(long newsId)
public ResultList<RelatedTopic> getAllNotificationsForUser()
public ArrayList<RelatedTopic> getAllUnseenNotificationsForUser()
public void subscribe(long accountId, long itemId)
SubscriptionService
subscribe
in interface SubscriptionService
accountId
- topic-id of user accountitemId
- topic-id of user accountpublic void unsubscribe(long accountId, long itemId)
SubscriptionService
unsubscribe
in interface SubscriptionService
accountId
- topic-id of user accountitemId
- topic-id of subscribed itempublic void createNotifications(String title, String message, long actionAccountId, DeepaMehtaObject item)
SubscriptionService
createNotifications
in interface SubscriptionService
title
- title of the notificationmessage
- text part of the notificationactionAccountId
- topic-id of user account performing the action which leads to the notification of all othersitem
- item users can have subscribed (either "User Account" or any TopicType with "Tags" as child)public ResultList<RelatedTopic> getAllNotifications()
SubscriptionService
getAllNotifications
in interface SubscriptionService
public ArrayList<RelatedTopic> getAllUnseenNotifications()
SubscriptionService
getAllUnseenNotifications
in interface SubscriptionService
public void websocketTextMessage(String message)
websocketTextMessage
in interface de.deepamehta.plugins.websockets.event.WebsocketTextMessageListener
private void createNotificationTopics(String title, String text, long accountId, DeepaMehtaObject involvedItem)
private void createNotificationTopics(String title, String text, long accountId, DeepaMehtaObject involvedItem, DeepaMehtaObject subscribedItem)
private boolean associationExists(String edge_type, long itemId, long accountId)
private Topic getUserAccountTopic(String username)
Copyright © 2016. All Rights Reserved.