30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
const webpush = require("web-push");
|
|
const databaseHandler = require("../../../../lib/database-handler");
|
|
const auth_middleware = require("../../../../middleware/auth");
|
|
|
|
module.exports = {
|
|
route: (routeObj) => {
|
|
routeObj.get(auth_middleware.auth_token(false, ""), (req, res) => {
|
|
const token = req.header("Authorization").split(/\s+/)[1];
|
|
const application = databaseHandler.getApplicationByToken(token);
|
|
let vapid_key = databaseHandler.getVapidKey();
|
|
|
|
if (vapid_key) {
|
|
vapid_key = vapid_key["public"];
|
|
}
|
|
if (!vapid_key) {
|
|
const vapidKeys = webpush.generateVAPIDKeys();
|
|
databaseHandler.setVapidKey(vapidKeys.publicKey, vapidKeys.privateKey);
|
|
vapid_key = vapidKeys.publicKey;
|
|
}
|
|
|
|
res.status(200);
|
|
res.json({
|
|
name: application.name,
|
|
website: application.website,
|
|
vapid_key: vapid_key["public"],
|
|
});
|
|
return;
|
|
});
|
|
},
|
|
};
|