PromucFlow_constructor/app/client/src/api/NotificationsAPI.tsx
2021-06-23 21:12:07 +05:30

34 lines
1.1 KiB
TypeScript

import { AxiosPromise } from "axios";
import Api from "./Api";
import { ApiResponse } from "./ApiResponses";
class NotificationsApi extends Api {
static baseURL = "v1/notifications";
static markAsReadURL = `${NotificationsApi.baseURL}/isRead`;
static markAllAsReadURL = `${NotificationsApi.markAsReadURL}/all`;
static fetchUnreadNotificationsCountURL = `${NotificationsApi.baseURL}/count/unread`;
static fetchNotifications(beforeDate?: string): AxiosPromise<ApiResponse> {
return Api.get(NotificationsApi.baseURL, beforeDate ? { beforeDate } : {});
}
static markAllNotificationsAsRead(): AxiosPromise<ApiResponse> {
return Api.patch(NotificationsApi.markAllAsReadURL, { isRead: true });
}
static fetchUnreadNotificationsCount(): AxiosPromise<ApiResponse> {
return Api.get(NotificationsApi.fetchUnreadNotificationsCountURL);
}
static markNotificationsAsRead(
ids: Array<string>,
): AxiosPromise<ApiResponse> {
return Api.patch(NotificationsApi.markAsReadURL, {
isRead: true,
idList: ids,
});
}
}
export default NotificationsApi;