46 lines
1.0 KiB
JavaScript
46 lines
1.0 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
|
|
const facade = require('../lib/facade');
|
|
|
|
function logRequestWarning(req, message)
|
|
{
|
|
console.warn(`[${req.ip}] ${message}`);
|
|
}
|
|
|
|
|
|
router.post('/notification', async (req, res) =>
|
|
{
|
|
if (req.headers.authorization !== 'Bearer ' + global.config.authToken)
|
|
{
|
|
logRequestWarning(req, 'Missing or invalid authorization header');
|
|
res.sendStatus(401);
|
|
return;
|
|
}
|
|
|
|
if (!req.body || !req.body.subject || !req.body.message)
|
|
{
|
|
logRequestWarning(req, 'Missing body, subject and/or message parameters');
|
|
res.sendStatus(400);
|
|
return;
|
|
}
|
|
|
|
await facade.postNotification(req.body.subject, req.body.message, req.body.priority || 0);
|
|
res.sendStatus(200);
|
|
});
|
|
|
|
|
|
router.post('/notification/reset', async (req, res) =>
|
|
{
|
|
if (!req.body || !req.body.token)
|
|
{
|
|
logRequestWarning(req, 'Missing token');
|
|
res.sendStatus(400);
|
|
return;
|
|
}
|
|
|
|
await facade.resetNotification(req.body.token);
|
|
res.sendStatus(200);
|
|
});
|
|
|
|
module.exports = router; |