@selfcommunity/api-services
Version:
Client api for SelfCommunity.
115 lines (107 loc) • 5.82 kB
TypeScript
import { SCBroadcastMessageType, SCNotificationAggregatedType, SCNotificationUnseenCountType } from '@selfcommunity/types';
import { CustomNotificationParams, SCPaginatedResponse } from '../../types';
import { AxiosRequestConfig } from 'axios';
export interface NotificationApiClientInterface {
listUserNotification(config?: AxiosRequestConfig): Promise<SCPaginatedResponse<SCNotificationAggregatedType>>;
markReadNotification(sids: string[], config?: AxiosRequestConfig): Promise<any>;
getUnseenNotification(config?: AxiosRequestConfig): Promise<SCNotificationUnseenCountType>;
createCustomNotification(data: CustomNotificationParams, config?: AxiosRequestConfig): Promise<any>;
listBroadcastMessages(config?: AxiosRequestConfig): Promise<SCPaginatedResponse<SCBroadcastMessageType>>;
listBroadcastMessagesUnseenCount(config?: AxiosRequestConfig): Promise<SCNotificationUnseenCountType>;
listBroadcastMessagesUndisposedCount(config?: AxiosRequestConfig): Promise<SCNotificationUnseenCountType>;
markReadBroadcastMessages(banner_ids: number[], config?: AxiosRequestConfig): Promise<any>;
disposeBroadcastMessages(banner_ids: number[], config?: AxiosRequestConfig): Promise<any>;
}
/**
* Contains all the endpoints needed to manage notifications.
*/
export declare class NotificationApiClient {
/**
* List all user notifications (in aggregate form) related to the community.
* @param config
*/
static listUserNotification(config?: AxiosRequestConfig): Promise<SCPaginatedResponse<SCNotificationAggregatedType>>;
/**
* This endpoint marks as read a list of notifications identified by serialization_ids (sids).
* @param sids
* @param config
*/
static markReadNotification(sids: string[], config?: AxiosRequestConfig): Promise<any>;
/**
* This endpoint retrieves the number of unseen/unread notifications.
* @param config
*/
static getUnseenNotification(config?: AxiosRequestConfig): Promise<SCNotificationUnseenCountType>;
/**
* This endpoint generates a custom notification starting from the user. The recipients of the notification can be the user's friends/followers or the user himself (based on recipients_type value). Es. connections -> "user" added an item to the wishlist.
* @param data
* @param config
*/
static createCustomNotification(data: CustomNotificationParams, config?: AxiosRequestConfig): Promise<any>;
/**
* This endpoint lists all broadcast messages. Broadcast Message is a feature which allows a specific user to send messages and announcements to a larger group of users at once.
* @param config
*/
static listBroadcastMessages(config?: AxiosRequestConfig): Promise<SCPaginatedResponse<SCBroadcastMessageType>>;
/**
* This endpoint retrieves the total number of broadcast messages not yet seen by the user.
* @param config
*/
static listBroadcastMessagesUnseenCount(config?: AxiosRequestConfig): Promise<SCNotificationUnseenCountType>;
/**
* This endpoint retrieves the total number of broadcast messages not yet disposed by the user.
* @param config
*/
static listBroadcastMessagesUndisposedCount(config?: AxiosRequestConfig): Promise<SCNotificationUnseenCountType>;
/**
* This endpoint marks as viewed/read a broadcast message for a user.
* @param banner_ids
* @param config
*/
static markReadBroadcastMessages(banner_ids: number[], config?: AxiosRequestConfig): Promise<any>;
/**
* This endpoint disposes a broadcast message for a user.
* @param banner_ids
* @param config
*/
static disposeBroadcastMessages(banner_ids: number[], config?: AxiosRequestConfig): Promise<any>;
}
/**
*
:::tip Notification service can be used in the following way:
```jsx
1. Import the service from our library:
import {NotificationService} from "@selfcommunity/api-services";
```
```jsx
2. Create a function and put the service inside it!
The async function `listUserNotification` will return the paginated list of notifications.
async listUserNotification() {
return await NotificationService.listUserNotification();
}
```
```jsx
In case of required `params`, just add them inside the brackets.
async disposeBroadcastMessages(banner_ids) {
return await NotificationService.disposeBroadcastMessages(banner_ids);
}
```
```jsx
If you need to customize the request, you can add optional config params (`AxiosRequestConfig` type).
1. Declare it(or declare them, it is possible to add multiple params)
const headers = headers: {Authorization: `Bearer ${yourToken}`}
2. Add it inside the brackets and pass it to the function, as shown in the previous example!
```
:::
*/
export default class NotificationService {
static listUserNotification(config?: AxiosRequestConfig): Promise<SCPaginatedResponse<SCNotificationAggregatedType>>;
static markReadNotification(sids: string[], config?: AxiosRequestConfig): Promise<any>;
static getUnseenNotification(config?: AxiosRequestConfig): Promise<SCNotificationUnseenCountType>;
static createCustomNotification(data: CustomNotificationParams, config?: AxiosRequestConfig): Promise<any>;
static listBroadcastMessages(config?: AxiosRequestConfig): Promise<SCPaginatedResponse<SCBroadcastMessageType>>;
static listBroadcastMessagesUnseenCount(config?: AxiosRequestConfig): Promise<SCNotificationUnseenCountType>;
static listBroadcastMessagesUndisposedCount(config?: AxiosRequestConfig): Promise<SCNotificationUnseenCountType>;
static disposeBroadcastMessages(banner_ids: number[], config?: AxiosRequestConfig): Promise<any>;
static markReadBroadcastMessages(banner_ids: number[], config?: AxiosRequestConfig): Promise<any>;
}