Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | 1x 1x 1x 2x 2x 2x 2x 2x 2x 2x 1x 1x 1x 1x | import { apiDeleteAuth, apiGetAuth, apiPatchAuth } from './api';
import type {
ListNotificationsResponse,
MarkAllNotificationsReadResponse,
UnreadNotificationCountResponse,
} from '@/models/notification';
export interface ListNotificationsParams {
limit?: number;
cursor?: string | null;
onlyUnread?: boolean;
}
function notificationListEndpoint(params?: ListNotificationsParams): string {
const query = new URLSearchParams();
if (params?.limit) query.set('limit', String(params.limit));
if (params?.cursor) query.set('cursor', params.cursor);
const path = params?.onlyUnread ? '/me/notifications/unread' : '/me/notifications';
const serialized = query.toString();
return serialized ? `${path}?${serialized}` : path;
}
export function listNotifications(
token: string,
params?: ListNotificationsParams,
): Promise<ListNotificationsResponse> {
return apiGetAuth<ListNotificationsResponse>(notificationListEndpoint(params), token);
}
export function getUnreadNotificationCount(
token: string,
): Promise<UnreadNotificationCountResponse> {
return apiGetAuth<UnreadNotificationCountResponse>(
'/me/notifications/unread-count',
token,
);
}
export function markNotificationRead(
notificationId: string,
token: string,
): Promise<void> {
return apiPatchAuth<void>(`/me/notifications/${notificationId}/read`, {}, token);
}
export function markAllNotificationsRead(
token: string,
): Promise<MarkAllNotificationsReadResponse> {
return apiPatchAuth<MarkAllNotificationsReadResponse>(
'/me/notifications/read',
{},
token,
);
}
export function deleteNotification(
notificationId: string,
token: string,
): Promise<void> {
return apiDeleteAuth<void>(`/me/notifications/${notificationId}`, token);
}
export function deleteAllNotifications(token: string): Promise<void> {
return apiDeleteAuth<void>('/me/notifications', token);
}
|