UNPKG

@selfcommunity/api-services

Version:
163 lines (155 loc) • 7.49 kB
"use strict"; 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;