Document toolboxDocument toolbox

Synapse Subscription Services

An important requirements for Synapse Discussion Forum is notifying users when important events happen. For example, a moderator receives notifications when someone posted a question on his/ her forum. An author receives notifications when someone answered to his/ her question.

In early discussion about notifications for Discussion Forum, we recognize that this kind of notifications is different from the Synapse Email Services that we have. In this case, users may want to subscribe to a topic or an object in Synapse and received notifications when something changed within this topic/ object. When receiving notifications about the events, user may or may not want to take any action. Users should also be able to choose the type of notifications they would like to receive, and be able to unsubscribe to a topic/ object and still receive notifications about events that happen around another topic/ object.

Mockups

User has not subscribe/ watch this thread and this forum.


User who subscribed/ watching this thread and this forum.


User logged in to unsubscribe/ stop watching this thread.


Models

API


ActionIntended UserURIMethodRequest ParamsRequest BodyResponse Body
1subscribe to a topicSynapse users who has READ permission on the object/subscriptionPOST
TopicSubscription
2retrieve subscriptions a user has for a given list of topicsSynapse users/subscription/listPOST
SubscriptionRequestSubscriptionPagedResults
3unsubscribe to a topicSynapse users who created this subscription/subscription/{subscriptionId}DELETE


4retrieve all subscriptions for a userSynapse users/subscription/allGETlimit, offset, objectType (optional)
SubscriptionPagedResults
5retrieve a subscriptionSynapse users who created this subscription/subscription/{subscriptionId}GET

Subscription
6retrieve subscribers for a topicSynapse users/subscription/subscribersPOSTnextPageTokenTopicSubscriberPagedResults
7retrieve number of subscribers for a topicSynapse users/subscription/subscribers/countPOST
TopicSubscriberCount
8subscribe to all topics with the same SubscriptionObjectTypeSynapse users/subscription/allPOSTobjectType
Subscription
SubscriberPagedResults
String nextPageToken
List<String> subscribers
SubscriberCount
long count