From dff07ef3409e5f20597d0ff41dbdfa9e8ca59abb Mon Sep 17 00:00:00 2001 From: Sami Abuzakuk Date: Sat, 1 Nov 2025 17:05:24 +0100 Subject: [PATCH] Frontend support for mark all viewed and delete all --- frontend/src/lib/api.ts | 22 +++++++++++++++++++ .../[subscription_id]/+page.svelte | 16 ++++++++------ 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index e502526..b9c05d2 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -245,6 +245,28 @@ export async function addSubscription(topic: string): Promise { return response.json(); } +// Add a new notification to a specific subscription +export async function markAllNotificationsAsViewed(subscriptionId: number): Promise { + const response = await fetch(`${API_URL}/subscriptions/${subscriptionId}/notifications`, { + method: 'POST', + headers: authHeaders() + }); + if (!response.ok) { + throw new Error('Failed to mark all notifications as viewed for subscription'); + } +} + +// Delete all notifications for a specific subscription +export async function deleteSubscriptionNotifications(subscriptionId: number): Promise { + const response = await fetch(`${API_URL}/subscriptions/${subscriptionId}/notifications`, { + method: 'DELETE', + headers: authHeaders() + }); + if (!response.ok) { + throw new Error('Failed to delete notifications for subscription'); + } +} + // Delete a subscription export async function deleteSubscription(subscriptionId: number): Promise { const response = await fetch(`${API_URL}/subscriptions/${subscriptionId}`, { diff --git a/frontend/src/routes/notifications/[subscription_id]/+page.svelte b/frontend/src/routes/notifications/[subscription_id]/+page.svelte index cc7d94f..d085d37 100644 --- a/frontend/src/routes/notifications/[subscription_id]/+page.svelte +++ b/frontend/src/routes/notifications/[subscription_id]/+page.svelte @@ -1,5 +1,11 @@