diff options
| author | Fuwn <[email protected]> | 2024-08-24 03:05:43 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-08-24 03:05:43 -0700 |
| commit | c654c46477602b162b931689902ecd09f574fbb1 (patch) | |
| tree | 8a8c2db5314f52a344c3dff96dc5145e897f697d /src/lib/Database | |
| parent | refactor(Data): rename database references (diff) | |
| download | due.moe-c654c46477602b162b931689902ecd09f574fbb1.tar.xz due.moe-c654c46477602b162b931689902ecd09f574fbb1.zip | |
feat(notifications): fingerprint for multiple grants
Diffstat (limited to 'src/lib/Database')
| -rw-r--r-- | src/lib/Database/SB/User/notifications.ts | 14 |
1 files changed, 10 insertions, 4 deletions
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' } ); |