1.2.3 • Published 5 months ago

@sirenapp/js-sdk v1.2.3

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

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
            };
        }

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. fetchUnviewedNotificationsCount

This method retrieves the count of unviewed notifications.

const { unviewedCount } = await sirenInstance.fetchUnviewedNotificationsCount()

2. 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;
}[]

3. 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

4. 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);

5. markAsReadById

This method marks the notification as read. It accepts a notification id as an argument.

await sirenInstance.markAsReadById("your-notification-id");

6. 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"});

7. deleteById

This method deletes a notification. It accepts a notification id as an argument.

await sirenInstance.deleteById("your-notification-id");

8. 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"});

9. 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");