@selfcommunity/api-services
Version:
Client api for SelfCommunity.
163 lines (155 loc) • 7.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NotificationApiClient = void 0;
const tslib_1 = require("tslib");
const apiRequest_1 = require("../../utils/apiRequest");
const Endpoints_1 = tslib_1.__importDefault(require("../../constants/Endpoints"));
/**
* Contains all the endpoints needed to manage notifications.
*/
class NotificationApiClient {
/**
* List all user notifications (in aggregate form) related to the community.
* @param config
*/
static listUserNotification(config) {
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.UserNotificationList.url({}), method: Endpoints_1.default.UserNotificationList.method }));
}
/**
* This endpoint marks as read a list of notifications identified by serialization_ids (sids).
* @param sids
* @param config
*/
static markReadNotification(sids, config) {
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.UserMarkReadNotification.url({}), method: Endpoints_1.default.UserMarkReadNotification.method, data: { sids: sids } }));
}
/**
* This endpoint retrieves the number of unseen/unread notifications.
* @param config
*/
static getUnseenNotification(config) {
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.UserUnseenNotificationCount.url({}), method: Endpoints_1.default.UserUnseenNotificationCount.method }));
}
/**
* 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, config) {
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.CreateCustomNotification.url({}), method: Endpoints_1.default.CreateCustomNotification.method, data: data }));
}
/**
* 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) {
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.BroadcastMessagesList.url({}), method: Endpoints_1.default.BroadcastMessagesList.method }));
}
/**
* This endpoint retrieves the total number of broadcast messages not yet seen by the user.
* @param config
*/
static listBroadcastMessagesUnseenCount(config) {
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.BroadcastMessagesUnseenCount.url({}), method: Endpoints_1.default.BroadcastMessagesUnseenCount.method }));
}
/**
* This endpoint retrieves the total number of broadcast messages not yet disposed by the user.
* @param config
*/
static listBroadcastMessagesUndisposedCount(config) {
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.BroadcastMessagesUndisposedCount.url({}), method: Endpoints_1.default.BroadcastMessagesUndisposedCount.method }));
}
/**
* This endpoint marks as viewed/read a broadcast message for a user.
* @param banner_ids
* @param config
*/
static markReadBroadcastMessages(banner_ids, config) {
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.BroadcastMessagesMarkRead.url({}), method: Endpoints_1.default.BroadcastMessagesMarkRead.method, data: { banner_ids: banner_ids } }));
}
/**
* This endpoint disposes a broadcast message for a user.
* @param banner_ids
* @param config
*/
static disposeBroadcastMessages(banner_ids, config) {
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.BroadcastMessagesDispose.url({}), method: Endpoints_1.default.BroadcastMessagesDispose.method, data: { banner_ids: banner_ids } }));
}
}
exports.NotificationApiClient = NotificationApiClient;
/**
*
:::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!
```
:::
*/
class NotificationService {
static listUserNotification(config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return NotificationApiClient.listUserNotification(config);
});
}
static markReadNotification(sids, config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return NotificationApiClient.markReadNotification(sids, config);
});
}
static getUnseenNotification(config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return NotificationApiClient.getUnseenNotification(config);
});
}
static createCustomNotification(data, config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return NotificationApiClient.createCustomNotification(data, config);
});
}
static listBroadcastMessages(config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return NotificationApiClient.listBroadcastMessages(config);
});
}
static listBroadcastMessagesUnseenCount(config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return NotificationApiClient.listBroadcastMessagesUnseenCount(config);
});
}
static listBroadcastMessagesUndisposedCount(config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return NotificationApiClient.listBroadcastMessagesUndisposedCount(config);
});
}
static disposeBroadcastMessages(banner_ids, config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return NotificationApiClient.disposeBroadcastMessages(banner_ids, config);
});
}
static markReadBroadcastMessages(banner_ids, config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return NotificationApiClient.markReadBroadcastMessages(banner_ids, config);
});
}
}
exports.default = NotificationService;