From c654c46477602b162b931689902ecd09f574fbb1 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sat, 24 Aug 2024 03:05:43 -0700 Subject: feat(notifications): fingerprint for multiple grants --- src/lib/Database/SB/User/notifications.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/lib/Database') diff --git a/src/lib/Database/SB/User/notifications.ts b/src/lib/Database/SB/User/notifications.ts index b07a0a3a..add0c8a8 100644 --- a/src/lib/Database/SB/User/notifications.ts +++ b/src/lib/Database/SB/User/notifications.ts @@ -5,6 +5,7 @@ export interface UserNotifications { updated_at: string; user_id: number; subscription: JSON; + fingerprint: string; } export const getUserSubscription = async (userId: number) => @@ -18,15 +19,20 @@ export const getUserSubscriptions = async () => { return data as UserNotifications[]; }; -export const deleteUserSubscription = async (userId: number) => - await sb.from('user_notifications').delete().eq('user_id', userId); +export const deleteUserSubscription = async (userId: number, fingerprint: string) => + await sb.from('user_notifications').delete().eq('user_id', userId).eq('fingerprint', fingerprint); -export const setUserSubscription = async (userId: number, subscription: JSON) => +export const setUserSubscription = async ( + userId: number, + subscription: JSON, + fingerprint: string +) => await sb.from('user_notifications').upsert( { user_id: userId, updated_at: new Date().toISOString(), - subscription: subscription + subscription: subscription, + fingerprint }, { onConflict: 'user_id' } ); -- cgit v1.2.3