@sirenapp/js-sdk
v1.2.2
Published
JavaScript middleware designed to streamline interaction for managing and displaying in-app notifications seamlessly
Downloads
114
Readme
Siren JS SDK
The Siren JS SDK for In-App Notifications enhances Siren's capabilities by providing users with advanced notification management functionalities within their javascript applications. This feature ensures a seamless integration process, robust error handling, and compatibility with Siren's existing ecosystem
Installation
You can install the js sdk from npm
npm install @sirenapp/js-sdk
or from yarn
yarn add @sirenapp/js-sdk
or from cdn
<script src="https://siren-js.sirenapp.io/siren-js-umd-sdk.js"></script>
Usage
Initialize the SDK by creating a class instance as follows
import Siren from "@sirenapp/js-sdk"
const sirenInstance = new Siren({
token: "your-user-token",
recipientId: "your-recipient-id",
onError: (error) => {
# error callback function
});
actionCallbacks:{
onEventReceive?: (response: NotificationsApiResponse, eventType: 'NOTIFICATIONS'| 'UNVIEWED_COUNT') => {
# callback function to receive data
};
onStatusChange?: (status: 'SUCCESS' | 'FAILED' | 'PENDING') =>{
# callback function triggered when token verification status changes
}
}
All the exposed methods can be accessed using sirenInstance object. For example,to fetch all notifications,
const response = await sirenInstance.fetchAllNotifications({ page: 0, size: 10 })
Siren constructor accepts the following arguments
Siren Methods
1. verifyToken
This method verifies the validity of the given tokens (recipientId and userToken).This method is called automatically while creating the instance . Once the verification is successful, the remaining exposed methods can be accessed.
await sirenInstance.verifyToken();
2. fetchUnviewedNotificationsCount
This method retrieves the count of unviewed notifications.
const { unviewedCount } = await sirenInstance.fetchUnviewedNotificationsCount()
3. fetchAllNotifications
This method retrieves list of notifications in a paginated manner.
const notifications = await sirenInstance.fetchAllNotifications({ page: 0, size: 15, start: '', end: '', isRead: false, category: 'posts' });
Below are the accepted optional filters
Response
interface Notifications = {
id: string;
createdAt?: string;
message: {
channel: string;
header: string;
subHeader: string;
body: string;
actionUrl: string;
avatar: {
imageUrl: string;
actionUrl: string | null;
}
additionalData: string;
}
requestId: string;
isRead: boolean;
}[]
4. startRealTimeFetch
By specifying the parameter eventType as either NOTIFICATIONS
or UNVIEWED_COUNT
, this method triggers the real-time retrieval of notifications or the count of unviewed notifications. If NOTIFICATIONS
is selected, further parameters (params
) can be provided for additional customization or filtering
sirenInstance.startRealTimeFetch({ eventType: NOTIFICATIONS, params:{ page: 0, size: 15, start: '', end: '', isRead: false, category: 'posts' }});
sirenInstance.startRealTimeFetch({ eventType: UNVIEWED_COUNT });
Below are the accepted optional filters for NOTIFICATIONS
event type
5. stopRealTimeFetch
By specifying the parameter eventType as either NOTIFICATIONS
or UNVIEWED_COUNT
, this method stops the real-time retrieval of notifications or the count of unviewed notifications.
sirenInstance.stopRealTimeFetch(NOTIFICATIONS);
sirenInstance.stopRealTimeFetch(UNVIEWED_COUNT);
6. markAsReadById
This method marks the notification as read. It accepts a notification id as an argument.
await sirenInstance.markAsReadById("your-notification-id");
7. markAsReadByDate
This method marks the notifications as read till the given date. It accepts a param object as an argument with keys startDate (ISO date string) and category(string).
await sirenInstance.markAsReadByDate({startDate: "2011-10-05T14:48:00.000Z"});
8. deleteById
This method deletes a notification. It accepts a notification id as an argument.
await sirenInstance.deleteById("your-notification-id");
9. deleteByDate
This method deletes the notifications till the given date. It accepts a param object as an argument with keys startDate (ISO date string), isRead(boolean) and category(string).
await sirenInstance.deleteByDate({startDate: "2011-10-05T14:48:00.000Z"});
10. markAllAsViewed
This method marks the notifications as viewed till the given date. This sets the unviewed count as 0 It accepts an ISO date string as an argument
await sirenInstance.markAllAsViewed("2011-10-05T14:48:00.000Z");