This commit is contained in:
client perkafean
2024-09-27 09:07:57 +00:00
parent faee9dfd2d
commit 69b3fe4347
33 changed files with 824 additions and 204 deletions

View File

@@ -0,0 +1,27 @@
import API_BASE_URL from "../config.js";
import { NotificationService } from "./notificationService";
export const SubscriptionService = {
async subscribeUserToNotifications(userId) {
const registration = await navigator.serviceWorker.ready;
const publicKey = await NotificationService.fetchVapidPublicKey(); // Fetch the public key
const subscription = await registration.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: NotificationService.urlB64ToUint8Array(publicKey),
});
await this.saveSubscription(userId, subscription);
console.log("User is subscribed:", subscription);
},
async saveSubscription(userId, subscription) {
await fetch(API_BASE_URL + "/subscribe", {
method: "POST",
body: JSON.stringify({ userId, subscription }),
headers: {
"Content-Type": "application/json",
},
});
},
};