anything-llm/server/endpoints/webPush.js

28 lines
796 B
JavaScript

const { reqBody } = require("../utils/http");
const { validatedRequest } = require("../utils/middleware/validatedRequest");
const { pushNotificationService } = require("../utils/PushNotifications");
function webPushEndpoints(app) {
if (!app) return;
app.post(
"/web-push/subscribe",
[validatedRequest],
async (request, response) => {
const subscription = reqBody(request);
await pushNotificationService.registerSubscription(
response.locals.user,
subscription
);
response.status(201).json({});
}
);
app.get("/web-push/pubkey", [validatedRequest], (_request, response) => {
const publicKey = pushNotificationService.publicVapidKey;
response.status(200).json({ publicKey });
});
}
module.exports = { webPushEndpoints };