brainz-social-old/routes/api/v1/apps/verify_credentials.js

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;
});
},
};